http://blog.csdn.net/u012322710/article/details/52860747

Best HTTP (Pro)  这是一款很多公司都在用的网页插件,感觉确实不错,分Pro版本和普通版本,下载地址:http://www.manew.com/thread-96247-1-1.html

需要你对http短连接有一定的了解。废话不多说啊,开搞!

因为自己找教程的时候,就找到一篇文章,还写的不多,本来想写的细一点,把大部分功能都写一下,还蛮多的,有点偷懒,上传流文件,下载上传进度其实插件的PDF都有,看一下就差不多,我这只是抛砖引玉。

  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEngine.UI;
  4. using System.Collections.Generic;
  5. //需要的命名空间
  6. using BestHTTP;
  7. using BestHTTP.Statistics;
  8. using BestHTTP.Cookies;
  9. using System;
  10. using System.IO;
  11. public class bestHttpDemo : MonoBehaviour {
  12. public RawImage image;
  13. public Text showResponse;
  14. //Get请求   不写HTTPMethods.Get默认也是Get
  15. public void OnGetRequest()
  16. {
  17. HTTPRequest request = new HTTPRequest(new Uri("https://www.baidu.com/"), HTTPMethods.Get, OnRequestFinished);
  18. request.Send();
  19. }
  20. //请求回调   request请求  response响应  这两个参数必须要有 委托类型是OnRequestFinishedDelegate
  21. void OnRequestFinished(HTTPRequest request, HTTPResponse response)
  22. {
  23. showResponse.text = "响应:" + response.DataAsText;
  24. }
  25. //下载图片
  26. public void OnLoadImage()
  27. {
  28. //Lambda表达式,下载直接回调,简便写法。
  29. new HTTPRequest(new Uri("http://img.manew.com/data/attachment/forum/201610/19/155755pbw4tt22zznczohh.png"), (request, response) =>
  30. {
  31. image.texture = response.DataAsTexture2D;
  32. //保存图片
  33. try
  34. {
  35. if (Application.platform == RuntimePlatform.Android)
  36. {
  37. //在PlayerSetting里修改 WriteAccess写入入口为外部SDCard   (这里还有问题,安卓里没存上,还没搞懂为什么)
  38. //Application.persistentDataPath  在安卓上  /mnt/sdcard/Android/data/com.zou.chongyang/files
  39. File.WriteAllBytes("jar:file://" + Application.persistentDataPath + "/MyImage.png", response.Data);
  40. }
  41. else
  42. {
  43. File.WriteAllBytes(Application.dataPath + "/MyImage.png", response.Data);
  44. }
  45. }
  46. catch (IOException e)
  47. {
  48. print(e);
  49. }
  50. }).Send();
  51. }
  52. /*
  53. //最好自己去看BestHTTPDocumentationEN.pdf文档,功能蛮多的。
  54. //BestHttp更多API  还蛮多的,懒得弄到UI上显示,自己拿着用吧。
  55. public void BestHttpAPI()
  56. {
  57. GeneralStatistics stats = HTTPManager.GetGeneralStatistics(StatisticsQueryFlags.All); //获取统计信息,统计类型全部
  58. BestHTTP.Caching.HTTPCacheService.IsSupported        //是否支持缓存(只读)
  59. stats.CacheEntityCount.ToString();                   //缓存对象个数
  60. stats.CacheSize.ToString("N0");                      //缓存总大小
  61. BestHTTP.Caching.HTTPCacheService.BeginClear();      //清空缓存
  62. BestHTTP.Cookies.CookieJar.IsSavingSupported        //是否支持保存Cookie(只读)
  63. stats.CookieCount.ToString();                       //Cookie个数
  64. stats.CookieJarSize.ToString("N0");                 //Cookie总大小
  65. BestHTTP.Cookies.CookieJar.Clear();                 //清空Cookie
  66. HTTPManager.GetRootCacheFolder()                    //获取缓存和Cookies目录路径
  67. stats.Connections.ToString();                       //Http连接数
  68. stats.ActiveConnections.ToString();                 //激活的Http连接数
  69. stats.FreeConnections.ToString();                   //空闲的Http连接数
  70. stats.RecycledConnections.ToString();               //回收的Http连接数
  71. stats.RequestsInQueue.ToString();                   //Request请求在队列的数量
  72. BestHTTP.HTTPManager.OnQuit();                      //退出统计
  73. //缓存维护  缓存最大1mb,   删除2天前的缓存
  74. BestHTTP.Caching.HTTPCacheService.BeginMaintainence(new BestHTTP.Caching.HTTPCacheMaintananceParams( TimeSpan.FromDays(2),1 *1024*1024 ));
  75. //Cookie维护  删除7天前的Cookie并保持在最大允许大小内。
  76. BestHTTP.Cookies.CookieJar.Maintain();
  77. //获取Cookie集合
  78. List<Cookie> cookie = CookieJar.Get(new Uri("https://www.baidu.com/"));
  79. //Cookie的API很多
  80. cookie[0].Name
  81. cookie[0].Domain
  82. cookie[0].Value
  83. }
  84. */
  85. }

Cookie介绍: https://my.oschina.net/jihan19921016/blog/506473

总结:不错,很好用!

随机推荐

  1. python中的os模块几个常用的方法

    os.getcwd() 得到当前工作目录,即当前python脚本工作的目录路径 os.remove(file):删除一个文件 os.mkdir(name):创建目录 os.path.exists(na ...

  2. 操作系统下spinlock锁解析、模拟及损耗分析

    关于spinlock 我们在知道什么是spinlock之前,还需要知道为什么需要这个spinlock?spinlock本质就是锁,提到锁,我们就回到了多线程编程的混沌初期,为了实现多线程编程,操作系统 ...

  3. C语言/C++编程学习三种循环用法和区别

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  4. 「Luogu 1471」 方差

    题目背景 滚粗了的HansBug在收拾旧数学书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的平均数和方差. 输入输出 ...

  5. PHP+JQuery实现ajax跨域

    jQuery实现ajax跨域 1.dataType:'jsonp'2.type: 'get'3.把要传的参数以url方式传出去  url:'http://gameapi.feiliu.com/lqzg ...

  6. ZooKeeper的部署和测试

    一背景 zookeeper是一个开源的分布式应用程序协调服务,是Apache Hadoop 的一个子项目.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.名字服务.分布式同步.组服 ...

  7. javascript中var that=this

    在JavaScript中,this代表的是当前对象. $(‘#conten').click(function(){ //this是被点击的#conten var that = this; $(‘.co ...

  8. 数据结构之BF算法,kmp算法,三元组,十字链表总结

    在这一章中,老师教了我们四种数据结构:BF算法,kmp算法,三元组和十字链表:还给我们讲了2019年团体天体赛中T1-8的AI题 1.对于BF和kmp算法,老师除了在课堂上讲解算法的主要核心思想外,还 ...

  9. SDUT OJ 多项式求和

    多项式求和 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 多项式描述 ...

  10. 3.mouseenter和mouseover事件的区别

    <html> <head> <meta charset="UTF-8"> <script src="jquery-3.3.1.j ...