UnityWebRequest类解析

首先你要知道这个类是干嘛的,主要是从服务器或者本地加载AB包的,官方解释为:

  1. UnityWebRequest对象用于与web服务器通信。
  2. unitywebre任务处理与web服务器的HTTP通信流。其他对象——特别是下载处理程序和UploadHandler——分别管理下载和上传数据。
  3. 为方便起见,提供了一组静态函数;这些返回UnityWebRequest对象为许多常见用例正确配置。看: Get, Post, Put, GetTexture.
  4. 注意:当UnityWebRequest通过调用Send方法开始与远程服务器通信时,不能改变UnityWebRequest对象上的大多数属性。

1.静态变量:

kHttpVerbCREATE

字符串“CREATE”,通常用作HTTP CREATE request的动词。

kHttpVerbDELETE

字符串“DELETE”,通常用作HTTP DELETErequest的动词。

kHttpVerbGET

字符串“GET”,通常用作HTTP GETrequest的动词。

kHttpVerbHEAD

字符串“HEAD”,通常用作HTTP HEADrequest的动词。

kHttpVerbPOST

字符串“POST”,通常用作HTTP POSTrequest的动词。

kHttpVerbPUT

字符串“PUT”,通常用作HTTP PUTrequest的动词。

         没看懂是用来干嘛的,但是这里笔者没有用到,如果用到再补充

2.属性

certificateHandler

持有对证书处理程序对象的引用,该对象负责管理UnityWebRequest的证书验证。

chunkedTransfer

表示UnityWebRequest系统是否应该采用HTTP/1.1传输编码方法。

disposeCertificateHandlerOnDispose

如果为true,那么连接到UnityWebRequest的任何证书处理程序都将拥有证书处理程序。当UnityWebRequest时自动调用,处理。

disposeDownloadHandlerOnDispose

如果为true,那么任何连接到这个UnityWebRequest的下载处理程序都将拥有DownloadHandler。当UnityWebRequest时自动调用。处理。

disposeUploadHandlerOnDispose

如果为true,任何附加到这个UnityWebRequest的UploadHandler都将拥有UploadHandler。当UnityWebRequest时自动调用,处理。

downloadedBytes

返回系统从远程服务器下载的主体数据的字节数。(只读)

downloadHandler

持有一个DownloadHandler对象的引用,该对象管理由这个UnityWebRequest从远程服务器接收的主体数据。

downloadProgress

返回0.0到1.0之间的浮点值,指示从服务器下载数据的进度。(只读)

error

一种可读的字符串,描述了在处理HTTP请求或响应时,UnityWebRequest对象遇到的任何系统错误。(只读)

isDone

在UnityWebRequest完成与远程服务器的通信之后,返回true。(只读)

isHttpError

在这个UnityWebRequest收到一个表示错误的HTTP响应代码之后,返回true。(只读)

isModifiable

当UnityWebRequest的配置属性可以被改变时,返回true。(只读)

isNetworkError

在这个UnityWebRequest遇到系统错误后返回true。(只读)

method

定义这个UnityWebRequest使用的HTTP动词(就是上面的静态属性),如GET或POST。

redirectLimit

在停止使用“重定向限制超过”系统错误之前,指示UnityWebRequest将遵循的重定向的数量。

responseCode

服务器返回的数字HTTP响应代码,如200404或500。(只读)

timeout

设置UnityWebRequest在超时数秒后尝试中止。

uploadedBytes

返回系统上载到远程服务器主体体数据字节数。(只读)

uploadHandler

持有对UploadHandler对象的引用,该对象管理将上传到远程服务器的主体数据。

uploadProgress

返回0.0到1.0之间的浮点值,指示将数据上传至服务器的进度。

uri

定义UnityWebRequest与之通信的目标URI。

url

定义UnityWebRequest与之通信的目标URL。

useHttpContinue

确定这个UnityWebRequest是否包括Expect:100-继续在其传出的请求头中。(默认值:true)。

     主要常用的几个属性为:

         downloadProgress/isDone/timeout/uri/uploadProgress

3.静态方法

Abort

如果有进展,就尽快停止UnityWebRequest。

Dispose

这是一种信号,表明这个UnityWebRequest不再被使用,并且应该清理它所使用的任何资源。

GetRequestHeader

检索定制请求头的值。

GetResponseHeader

从收到的最新HTTP响应中检索响应头的值。

GetResponseHeaders

在最新的HTTP响应中检索一个包含这个UnityWebRequest所接收到的所有响应头的字典。

SendWebRequest

开始与远程服务器通信。在调用此方法之后,UnityWebRequest将执行DNS解析(如果必要的话),将HTTP请求发送到目标URL的远程服务器并处理服务器的响应。这种方法只能在任何给定的UnityWebRequest对象中调用一次。一旦这个方法被调用,您就不能更改UnityWebRequest的任何属性。这个方法返回一个WebRequestAsyncOperation对象。在一个coroutine中产生WebRequestAsyncOperation会导致coroutine暂停,直到UnityWebRequest遇到系统错误或完成通信。

SetRequestHeader

设置一个HTTP请求头到一个定制值。

4.公共方法

Abort

如果有进展,就尽快停止UnityWebRequest。

Dispose

这是一种信号,表明这个UnityWebRequest不再被使用,并且应该清理它所使用的任何资源。

GetRequestHeader

检索定制请求头的值。

GetResponseHeader

从收到的最新HTTP响应中检索响应头的值。

GetResponseHeaders

在最新的HTTP响应中检索一个包含这个UnityWebRequest所接收到的所有响应头的字典。

SendWebRequest

开始与远程服务器通信。在调用此方法之后,UnityWebRequest将执行DNS解析(如果必要的话),将HTTP请求发送到目标URL的远程服务器并处理服务器的响应。这种方法只能在任何给定的UnityWebRequest对象中调用一次。一旦这个方法被调用,您就不能更改UnityWebRequest的任何属性。这个方法返回一个WebRequestAsyncOperation对象。在一个coroutine中产生WebRequestAsyncOperation会导致coroutine暂停,直到UnityWebRequest遇到系统错误或完成通信。

SetRequestHeader

设置一个HTTP请求头到一个定制值。

Get方式:

private IEnumerator SendUrl(string url)
{
    using (UnityWebRequest www = UnityWebRequest.Get(url))
    {
        yield return www.Send();
        if (www.error != null)
        {
            Debug.Log(www.error);
        }
        else
        {
            if (www.responseCode == 200)//200表示接受成功
            {
               Debug.Log(www.downloadHandler.text);
            }
        }
    }
}

Post方式:

public IEnumerator PostUrl(string url, string postData)
{
    using (UnityWebRequest www = new UnityWebRequest(url,"POST"))
    {
        byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
        www.uploadHandler = (UploadHandler)new UploadHandlerRaw(postBytes);
        www.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
        www.SetRequestHeader("Content-Type", "application/json");
        yield return www.Send();
        if (www.isError)
        {
            Debug.Log(www.error);
        }
        else
        {
            // Show results as text  
            if (www.responseCode == 200)
            {
                Debug.Log(www.downloadHandler.text);
            }
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值