BsetHtttp通信

using BestHTTP;
using BestHTTP.Authentication;
using BestHTTP.WebSocket;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
/// <summary>
/// 下载一张图片
/// </summary>
public class BestDemo : MonoBehaviour
{

    GameObject obj;
    void Start()
    {
        obj = GameObject.CreatePrimitive(PrimitiveType.Cube);
        //HTTPRequest request = new HTTPRequest(new Uri("http://f.hiphotos.baidu.com/image/pic/item/f603918fa0ec08faf4f358d454ee3d6d54fbdad6.jpg"),OnRequestFinished);
        //request.Send();
        //HTTPRequest request = new HTTPRequest(new Uri("http://f.hiphotos.baidu.com/image/pic/item/f603918fa0ec08faf4f358d454ee3d6d54fbdad6.jpg"),
        // HTTPMethods.Post,
        //OnRequestFinished);
        //request.AddField("FieldName", "Field Value");
        // request.AddBinaryData();
        //request.RawData = Encoding.UTF8.GetBytes("Field Value");
        //request.Send();
        //Debug.Log(request.RawData.ToString());
        //StartCoroutine(WWWFun());
        var request = new HTTPRequest(new Uri("http://f.hiphotos.baidu.com/image/pic/item/f603918fa0ec08faf4f358d454ee3d6d54fbdad6.jpg"), (req, resp) =>
        {
            print("OK");
            List<byte[]> fragments = resp.GetStreamedFragments();//下载的缓存的数据信息
            using (FileStream fs = new FileStream("pathToSave", FileMode.Append))
                foreach (byte[] data in fragments)
                    fs.Write(data, 0, data.Length);
            if (resp.IsStreamingFinished)
                Debug.Log("Download finished!");//下载完成
        });
        //切换了标志位-UseStreaming为true,所以回调函数可以被反复调用。
        request.UseStreaming = true;
        //StreamFragmentSize标示了我们在调用回调函数之前希望缓存的最大数据量。
        //每当StreamFragmentSize 大小的数据块下载后我们的回调函数就会被调用,
        //并且在IsStreamingFinished 设为true之后还会再调用一次。
        request.StreamFragmentSize = 1 * 1024 * 1024;//设置接受包数据的大小


        //关闭缓存
        request.DisableCache = true;
        request.Send();
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想要一个可以通过 HTTP/2 支持 REST、WebSocket、Socket.IO、SignalR、SignalR Core、Server-Sent Events(以及更多)的自定义请求并且具有开发者定期更新和出色支持功能的现成插件,那么 BestHTTP/2 就是你需要的! 您可以在其自己的演示页面上试用该资源包,并阅读在线文档。 内含所有源代码! 支持的平台: - 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 解码器 服务器发送事件功能: - 与最新规格兼容 - 易于使用的 API

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值