当前位置:   article > 正文

UnityWebRequest_unitywebrequest headers host

unitywebrequest headers host

1.UnityWebRequest介绍

UnityWebRequest封装了网络请求,支持http、https、file、和匿名ftp协议的请求以及处理。

UnityWebRequest请求相关元素

  • UploadHandler 处理数据 将数据发送到服务器的对象
  • DownloadHandler 从服务器接收数据的对象
  • UnityWebRequest 负责 HTTP 通信流量控制来管理上面两个对象的对象。

一次HTTP请求,一般流程如下:

1. 创建一个UnityWebRequest对象

2. 配置UnityWebRequest对象

            2.1 设置headers

            2.2 设置HTTP请求方式(例如GET,POST,HEAD)

3.(可选)创建一个UploadHandler添加到这个UnityWebRequest对象上面

            3.1 提供上传的数据

            3.2 提供上传的HTTP表单

4.(可选)创建一个DownloadHandler添加到这个UnityWebRequest对象上面

5. 发送UnityWebRequest请求(UnityWebRequest在调用SendWebRequest()方法之后才会真正执行请求)

6.(可选)从DownloadHandler里面读取接收到的数据

7.(可选)从UnityWebRequest对象读取error信息、HTTP状态码、相应头等信息。

 

2.UnityWebRequest常用方法:

1. public void Abort();

  • 立刻停止当前正在运行的UnityWebRequest对象,UnityWebRequest error返回为true,error属性将为“User Aborted
  • 没有调用SendWeRequest的UnityWebRequest对象,将在调用Send后,立刻停止。
  • 已遇到错误或者完成通信的UnityWebRequest对象,此方法无效。

2. public static string EscapeURL(string s);

某些文本字符在URL中存在时具有特殊含义。 如果需要在URL参数中包含这些字符,则必须使用转义序列表示它们。 建议您在将文本作为URL参数传递之前,对用户提供的任何文本使用此函数。 这将确保恶意用户无法操纵URL的内容来攻击Web服务器。 我们也可以使用UnityWebRequest.UnEscapeURL来将URL转译回来。

3. Dispose() 释放UnityWebRequest对象和它正在使用的资源。

因为Unity给我们提供了disposeDownloadHandlerOnDispose和disposeUploadHandlerOnDispose两个bool类型属性。

他们的默认值是true,也就是我们不需要设置Unity就会自动在完成后调用Dispose()释放资源。

 

3.UnityWebRequest常用属性:

属性名称含义
url定义UnityWebRequest与之通信的目标URI。
tiimeout请求超过此值,终止请求
isHttpError错误的HTTP响应代码大于或等于400后返回true。 (只读)错误类型的服务器返回代码(例如404 / Not Found和500 / Internal Server Error)反映在isHttpError属性中,而不是isNetworkError属性中。
isNetworkError遇到系统错误后返回true,系统错误的示例包括无法解析DNS条目,套接字错误或超出重定向限制。 当此属性返回true时,error属性将包含描述错误的可读字符串。
downloadProgress

返回介于0.0和1.0之间的浮点值,指示从服务器下载正文数据的进度。

仅当服务器的响应包含Content-Length标头并且UnityWebRequest具有附加到downloadHandler属性的DownloadHandler时,此属性才有效。

如果UnityWebRequest已完成(成功或系统错误),则此属性将始终返回1.如果UnityWebRequest仍在与远程服务器通信,并且downloadHandler为null,则此属性将返回0.5。 如果尚未调用Send,则此属性将返回-1。

uploadProgress返回介于0.0和1.0之间的浮点值,指示将数据上载到服务器的进度。如果UnityWebRequest完成(成功或系统错误),则此属性将始终返回1.如果UnityWebRequest仍在与远程服务器通信,并且uploadHandler为null,则此属性将返回零。 如果尚未调用Send,则此属性将返回-1。
error

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

如果UnityWebRequest未遇到系统错误,则此属性将返回null。 系统错误的示例包括套接字错误,解析DNS条目的错误或超出的重定向限制。

注意:来自服务器的错误类型返回码(例如404 / File Not Found或500 / Internal Server Error)不被视为系统错误。默认值:null。

isDone

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

当UnityWebRequest成功完成或遇到系统错误时,此属性将返回true。 DownloadHandler(如果有)的所有后期下载处理将在此属性返回true之前完成。

3.相关类:

DownloadHandler派生出以下类,附加到UnityWebRequest对象中,请求完成后,可直接把下载后的数据转化为Unity可用的Object对象。

例如下载音频: 

  1. using (UnityWebRequest uwr = new UnityWebRequest(url))
  2. {
  3. DownloadHandlerAudioClip downloadAudioClip = new DownloadHandlerAudioClip(url, AudioType.WAV);
  4. uwr.downloadHandler = downloadAudioClip;
  5. yield return uwr.SendWebRequest();
  6. AudioClip audioClip = null;
  7. string text = null;
  8. if (!(uwr.isNetworkError || uwr.isHttpError))
  9. {
  10. audioClip = downloadAudioClip.audioClip;
  11. }
  12. else
  13. {
  14. text = uwr.error;
  15. }
  16. if (actionResult != null)
  17. {
  18. actionResult.Invoke((uwr.isNetworkError || uwr.isHttpError), text, audioClip);
  19. }
  20. }

Ps:

使用无BOM的UTF8编码的文件进行数据传递。

参考:

https://www.jianshu.com/p/8631ae7dd653

https://blog.csdn.net/qwe25878/article/details/85051911

https://docs.unity3d.com/560/Documentation/Manual/UnityWebRequest.html#UsingLLAPI

https://www.shijunzh.com/archives/1162

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号