随笔 - 54, 评论 - 7, 访问 - 232206

导航


  • 访问:232206次
  • 积分:564分
  • 排名:第38名
  • 随笔:54篇
  • 评论:7条

随笔分类

随笔档案

相册

最新评论

阅读排行榜

评论排行榜

unity3d 阅读(116) 评论(0)

BestHTTP可以通过 HTTP/2 支持 REST、WebSocket、Socket.IO、SignalR、SignalR Core、Server-Sent Events(以及更多)的自定义请求并且具有开发者定期更新和出色支持功能的现成插件。
BestHTTP允许使用TLS1.2进行https通信。

 

支持的平台:
- WebGL
- iOS、Android
- UWP、Windows、Mac OS X、Linux

 

主要功能有:
- HTTP/2
- 自定义您的请求的所有部分:
◦ 方法(GET、HEAD、POST、PUT、DELETE、PATCH)
◦ 标头
◦ Cookie
◦ 最大重定向计数
◦ 超时
- 访问服务器发送的每个比特位:
◦ 标头
◦ 状态代码
◦ Cookie
◦ 原始内容
◦ 尾部标头
- 连接和内存池
- 连接和请求超时
- 自动 Cookie 处理
- 支持众多代理(Fiddler、Charles 等)
- 支持 HTTP 和 Socks 代理
- 自动缓存和缓存验证
- 设置缓存大小和新鲜度
- gzip 内容编码
- 基本和摘要式身份验证
- 多种格式类型(URL 编码和多部分/格式数据)
- 自动重定向处理
- 上传和下载进度跟踪
- 下载时访问您的数据
- 您可以使用 Range 标头恢复下载
- HTTPS
- 自定义各种全局设置:
◦ 每个服务器的最大连接数
◦ 启用/禁用Cookie
◦ 隐私浏览模式
◦ Cookie Jar 大小
◦ 等等

 

WebSocket 功能:
- 完全符合 RFC
- 易于使用,“可行”的体验
- 支持扩展:
◦ WebSocket 的压缩扩展 (RFC7692)

 

Socket.IO 功能:
- 符合最新的(1.x 和 2.x)Socket.IO 实现
- 自动传输升级和降级
- 二进制数据的发送和接收
- 您可以插入自己喜欢的 Json 解码器

 

SignalR Core 功能:
- 支持最新的 SignalR Core
- 支持 MessagePack 编码
- 强类型回调
- 使用具有后备选项的最快的 Websocket 传输进行长轮询
- 程序包中包含基于标头的身份验证器
- 上传和下载串流

 

SignalR 功能:
- 适用于最新的 SignalR 实现
- 易于使用的 API
- 中心
- 支持身份验证
- 长时间运行的作业的进度消息
- 自动传输升级/降级
- 您可以插入自己喜欢的 Json 解码器

 

下面是一个下载并显示进度的源码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BestHTTP;
using System;
using BestHTTP.Caching;

public class TestBehaviourScript : MonoBehaviour {

	// Use this for initialization
	void Start () {
        // 清理缓存
        //HTTPCacheService.BeginClear();

        HTTPRequest request = new HTTPRequest(new Uri(""), OnRequestFinished);
        request.OnDownloadProgress = OnDownloadProgress;
        request.Send();

    }

    /// <summary>
    /// 下载完成
    /// </summary>
    /// <param name="request"></param>
    /// <param name="response"></param>
    void OnRequestFinished(HTTPRequest request, HTTPResponse response)
    {
        Debug.Log("Request Finished!Text received:" + response.DataAsText);
    }

    /// <summary>
    /// 下载进度
    /// </summary>
    /// <param name="originalRequest"></param>
    /// <param name="downloaded"></param>
    /// <param name="downloadLength"></param>
    void OnDownloadProgress(HTTPRequest originalRequest, long downloaded, long downloadLength)
    {
        Debug.Log("Progress:" + downloaded.ToString() + "," + downloadLength.ToString());
    }

    // Update is called once per frame
    void Update () {
		
	}
}

发表评论
切换编辑模式