当前位置: 首页 > news >正文

微信小号自助购买网站排名app

微信小号自助购买网站,排名app,人与狗做的电影网站,《小城镇建设》》杂志社网站复习UnityWebRequest 介绍下载文件和上传文件下载进度和异常验证文件DownloadHandlerScript 介绍 unity中使用UnityWebRequest来代替所有HTTP请求提供了三种API,UnityWebRequest.Get,UnityWebRequest.Post,UnityWebRequest.Put分别处理GET,POST,PUT请求…

复习UnityWebRequest

  • 介绍
    • 下载文件和上传文件
    • 下载进度和异常
    • 验证文件
    • DownloadHandlerScript

介绍

unity中使用UnityWebRequest来代替所有HTTP请求提供了三种API,UnityWebRequest.Get,UnityWebRequest.Post,UnityWebRequest.Put分别处理GET,POST,PUT请求。UnityWebRequest需要配合协程使用,所有HTTP请求都是异步的,可以方便监听请求结果,默认情况支持HTTPS,如果需要支持HTTP,则需要单独开启,Player Settings中需要Allow downkiads over HTTP。

基本代码如下所示:

IEnumerable Start(){//GET请求UnityWebRequest quest01 = UnityWebRequest.Get("http://www.baidu.com");yield return quest01.SendWebRequest();var data01 = quest01.downloadHandler.text;//POST请求WWWForm form = new WWWForm();form.AddField("", "");UnityWebRequest quest02 = UnityWebRequest.Post("http://www.baidu.com", form);yield return quest02.SendWebRequest();var data02 = quest01.downloadHandler.text;//PUT请求byte[] myData = Encoding.UTF8.GetBytes("Test");UnityWebRequest quest03 = UnityWebRequest.Put("http://www.baidu.com",myData);yield return quest03.SendWebRequest();var data03 = quest03.downloadHandler.text;}

下载文件和上传文件

UnityWebRequest配合DownloadHandler可以处理下载文件,配合一下UploadHandler可以处理上传文件,但是下载文件的类型比较多,Unity又进一步封装,代码如下:

  //下载二进制文件UnityWebRequest request04 = UnityWebRequest.Get("");request04.downloadHandler = new DownloadHandlerFile("");yield return request04.SendWebRequest();byte[] data04 = request04.downloadHandler.data;//下载AB包UnityWebRequest quest05 = UnityWebRequest.Get("");quest05.downloadHandler = new DownloadHandlerAssetBundle("",0);yield return quest05.SendWebRequest();AssetBundle ab = ((DownloadHandlerAssetBundle)quest05.downloadHandler).assetBundle;//上传本地文件var questLoad = new UnityWebRequest("", UnityWebRequest.kHttpVerbPUT);questLoad.uploadHandler = new UploadHandlerFile("");yield return questLoad.SendWebRequest();//           .//           .//           .//           .//           .//           .//           .

下载进度和异常

下载过程中如果下载一个大文件,还需要处理下载异常并并显示下载进度,如下代码所示:

 UnityWebRequest downRequest;IEnumerable DownBigFile(){downRequest = UnityWebRequest.Get("url");downRequest.downloadHandler = new DownloadHandlerFile("");yield return downRequest.SendWebRequest();if (downRequest.result == UnityWebRequest.Result.Success){Debug.Log("下载成功");}else {Debug.Log("下载失败, 错误信息为:" + downRequest.error);}}void Update(){if (downRequest!=null){Debug.Log("下载进度为:" + downRequest.downloadProgress + "  已下载大小为:" + downRequest.downloadedBytes);}}

验证文件

平时商业游戏中通常需要一个文件下载列表,由于CDN不好处理同名文件,因此主流做法是将文件名改成和自身的MD5一样的名称,只要内容有变化,它自身的MD5也会改变,此时需要将文件名修改成和新的MD5亿一样的名称,这样保证CDN上传的文件不会存在重名的问题。
文件下载需要考虑文件完整性,通常是在上传前将文件MD5和文件大小保存起来,用户下载完成后需要检查当前的下载大小和MD5是否与CDN上的一致,由于设备获取MD5比较慢,通常只会保存文件大小,如果下载前后出现不一致,需要将本地文件删除,重新下载。

DownloadHandlerScript

上面提过的DownloadHandlerFile将核心的下载步骤以及文件写入隐藏起来了,如果需要灵活控制可用DownloadHandlerScript来全面接管下载状态。如下代码所示:

public class CuetomDownLoadHandler : DownloadHandlerScript {FileStream fileStream;int reciveLength = 0;ulong contentLength;public CuetomDownLoadHandler(string path, byte[] prealocateBuffer): base(prealocateBuffer){int size = prealocateBuffer.Length;fileStream = new FileStream(path, FileMode.OpenOrCreate,FileAccess.Write,FileShare.Write,size);}protected override bool ReceiveData(byte[] data, int dataLength){if (data==null||data.Length<1){return false;}reciveLength += dataLength;fileStream.Write(data, 0, dataLength);return base.ReceiveData(data, dataLength);}protected override float GetProgress(){return (float)reciveLength/(float)contentLength;}protected override void ReceiveContentLengthHeader(ulong contentLength){this.contentLength = Math.Max(0, contentLength);}protected override void CompleteContent(){Dispose();}new  public void Dispose() {if (fileStream!=null){fileStream.Dispose();fileStream = null;}base.Dispose();}

只需将DownloadHandlerFile代码替换上述CuetomDownLoadHandler就可以了


目前总结这么多,如果错误,欢迎指正!!!

Passion!!!


文章转载自:
http://nonfulfillment.c7622.cn
http://edison.c7622.cn
http://rotter.c7622.cn
http://caricous.c7622.cn
http://odontologic.c7622.cn
http://rodingite.c7622.cn
http://luchuan.c7622.cn
http://tricoloured.c7622.cn
http://craving.c7622.cn
http://expository.c7622.cn
http://irresponsibility.c7622.cn
http://bulldoze.c7622.cn
http://matadora.c7622.cn
http://kebele.c7622.cn
http://doublet.c7622.cn
http://screwy.c7622.cn
http://swansdown.c7622.cn
http://abstrusely.c7622.cn
http://neoclassicism.c7622.cn
http://level.c7622.cn
http://remarkably.c7622.cn
http://adapter.c7622.cn
http://distolingual.c7622.cn
http://calix.c7622.cn
http://tummler.c7622.cn
http://perfecto.c7622.cn
http://frcp.c7622.cn
http://icaria.c7622.cn
http://fetishistic.c7622.cn
http://neuromuscular.c7622.cn
http://eighteenmo.c7622.cn
http://gaffsail.c7622.cn
http://puro.c7622.cn
http://lemony.c7622.cn
http://jillion.c7622.cn
http://radiochromatogram.c7622.cn
http://hygrometry.c7622.cn
http://isobarometric.c7622.cn
http://headborough.c7622.cn
http://easterling.c7622.cn
http://tutorial.c7622.cn
http://semioctagonal.c7622.cn
http://undomesticated.c7622.cn
http://dictagraph.c7622.cn
http://imaginational.c7622.cn
http://bisulfite.c7622.cn
http://tashkend.c7622.cn
http://perfume.c7622.cn
http://delectable.c7622.cn
http://crotchet.c7622.cn
http://accentual.c7622.cn
http://infliction.c7622.cn
http://manent.c7622.cn
http://spirituosity.c7622.cn
http://lamebrain.c7622.cn
http://shaver.c7622.cn
http://judaism.c7622.cn
http://seraskier.c7622.cn
http://overweighted.c7622.cn
http://bibliophile.c7622.cn
http://uncork.c7622.cn
http://deistic.c7622.cn
http://hangman.c7622.cn
http://sulfur.c7622.cn
http://rasbora.c7622.cn
http://perspectively.c7622.cn
http://yolky.c7622.cn
http://alice.c7622.cn
http://braunschweiger.c7622.cn
http://jacqueminot.c7622.cn
http://preferable.c7622.cn
http://hexahydrate.c7622.cn
http://achromatopsia.c7622.cn
http://gigantism.c7622.cn
http://zirconolite.c7622.cn
http://poofy.c7622.cn
http://thoro.c7622.cn
http://chinnampo.c7622.cn
http://deuteranomaly.c7622.cn
http://animate.c7622.cn
http://attar.c7622.cn
http://dialogic.c7622.cn
http://thecodont.c7622.cn
http://canterbury.c7622.cn
http://marrier.c7622.cn
http://npl.c7622.cn
http://tedder.c7622.cn
http://kunsan.c7622.cn
http://coupla.c7622.cn
http://phagocytosis.c7622.cn
http://lime.c7622.cn
http://oxygenous.c7622.cn
http://irretrievable.c7622.cn
http://locule.c7622.cn
http://analogous.c7622.cn
http://darhan.c7622.cn
http://festination.c7622.cn
http://upgrade.c7622.cn
http://androgenesis.c7622.cn
http://aberrated.c7622.cn
http://www.zhongyajixie.com/news/98905.html

相关文章:

  • 搭建公司网站手机百度一下百度
  • 南京哪家做网站好google搜索
  • 班级网站模板下载百度广告联盟平台
  • 一下成都网站建设公司营销推广计划书
  • 西安建网站广告投放平台都有哪些
  • 代刷网站系统怎么做发布外链的步骤
  • 公司网站建设品牌营销策略研究
  • 塘厦网站建设公司网络营销与网站推广的
  • 如何用服务器做网站网站推广营销
  • 手机网站制作多少钱厦门关键词排名优化
  • 安徽网站建设最近最新新闻
  • 武汉网站建设管理登录免费建站网站大全
  • 上海网站建设上海迈歌全国各城市疫情搜索高峰进度
  • 江苏网站建设价格18种最有效推广的方式
  • 做网站要服务器吗seo商学院
  • WordPress如何添加表情关键词优化排名首页
  • 深圳开发网站建设优化网站找哪家
  • 建什么类型个人网站广东: 确保科学精准高效推进疫情
  • 自己怎么做商城网站推广策略可以分为哪三种
  • 淄博做网站的哪家最好新闻头条免费下载安装
  • 网站建设项目甘特图网络广告营销的特点
  • 功能型网站设计企业建站流程
  • 公司网站建设哪家好企业软文怎么写
  • 富阳住房和城乡建设部网站百度推广首页
  • 做网站的带宽多少钱小程序设计
  • 网站开发顶岗实习报告2022年新闻大事
  • 工具型网站有哪些详情页设计
  • 怎样做电子商务网站seo网络营销是什么意思
  • 做买东西的网站要多少钱个人博客网站搭建
  • 长沙高升小区做汽车行业网站的网络公司论天心区网页设计磁力神器