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. 从头开始学eShopOnContainers——Visual Studio 2017环境配置

    一.安装和配置Docker环境 1.安装Docker CE for Windows 从官方网站下载并安装,https://docs.docker.com/docker-for-windows/inst ...

  2. Quicksort------代码之美

    #include<iostream> #include<cstdlib> #include<time.h> using namespace std; void sw ...

  3. Struts2学习第3天--OGNL、EL、值栈

    JAVA中的OGNL: 1 调用对象的方法: 2 访问对象的静态方法: 3 获取OGNLContext.Root中的数据. User: 4 访问Context: 关键还是在Struts2环境中的使用: ...

  4. JavaScript 错误监控Fundebug

    https://www.fundebug.com/ 等待接收错误 请先将Fundebug插件集成到您的应用中 测试插件 为验证集成是否成功,请在浏览器的控制台执行以下命令: fundebug.noti ...

  5. HDP 中 yarn 和 MR2 的配置

    以下说明均以集群中 slave 结点的配置为 48G内存,12块硬盘,12核(core) CPU 为例. 在 Yarn 中,一个 Container 是一个基础的包含内存和CPU 的单元.为了较好的平 ...

  6. kali linux之漏洞扫描

    发现弱点:基于端口服务扫描结果版本信息,搜索已公开的漏洞数据库 使用弱点扫描器实现漏洞管理 弱点扫描类型(扫描结果不能确定是不是准确的,应该综合对待威胁) 主动扫描:有身份验证,无身份验证 被动扫描: ...

  7. 【转】右键的 在 vs 中打开 怎么去掉

    源地址:https://blog.csdn.net/weicaijiang/article/details/78818522 HKEY_CLASSES_ROOT\Directory\backgroun ...

  8. 洛谷P2756 飞行员配对方案问题(二分图匹配)

    传送门 一个基础的二分图匹配(虽然今天才学会) 因为不会匈牙利算法只好用网络流做 先新建一个超级源和超级汇,源往所有左边的点连边,所有右边的点往汇连边 然后跑一边最大流就好了 顺便记录一下匹配到谁就好 ...

  9. Java面向对象之构造代码块 入门实例

    一.基础概念 1.构造代码块,给所有对象进行初始化. 2.构造函数,只给对应的对象初始化. 3.局部代码块,控制局部变量的生命周期. 二.实例代码 class Person { private int ...

  10. MyBatis与JDBC的对比

    //JDBC的步骤,1.加载驱动.2.获取连接.3.执行sql语句.4.处理结果集.5.关闭资源 Class.forName("com.mysql.jdbc.Driver").ne ...