UnityWebRequest

UnityWebRequest提供了一个用于编写HTTP请求和处理HTTP响应的模块化系统。UnityWebRequest系统的主要目标是允许Unity游戏与Web浏览器后端进行交互。它还支持高需求的功能,如分块的HTTP请求,流式POST / PUT操作以及对HTTP标头和动词的完全控制。

该系统由两层组成:

  1. 高级APIHLAPI)包裹低级API,并提供了方便的接口,用于执行常见的操作
  2. 一个低级别的APILLAPI)提供了更高级的用户最大的灵活性

支持的平台

UnityWebRequest系统支持大多数Unity平台:

  1. 所有版本的编辑器和独立播放器
  2. WebGL
  3. 移动平台:iOSAndroid
  4. 通用Windows平台
  5. PS4PSVita
  6. XboxOne
  7. 任天堂开关

创建

UnityWebRequest生态系统将HTTP事务分解为三种不同的操作:

  1. 向服务器提供数据
  2. 从服务器接收数据
  3. HTTP流量控制(例如重定向和错误处理)

为了为高级用户提供更好的界面,这些操作分别由它们自己的对象来管理:

  1. 一个UploadHandler对象处理数据到服务器的传输
  2. 一个DownloadHandler对象处理从服务器收到的数据的接收,缓存和后处理
  3. 一个UnityWebRequest对象管理另外两个对象,并处理HTTP流量控制。该对象是自定义标题和URL定义的位置,以及存储错误和重定向信息的位置。

 6.6 UnityWebRequest  - 图1

对于任何HTTP事务,正常的代码流是:

  1. 创建一个Web请求对象
  2. 配置Web请求对象
  3. 设置自定义标题
  4. 设置HTTP动词(例如GETPOSTHEAD - Android以外的所有平台上都允许使用自定义动词)
  5. 设置网址
  6. (可选)创建上传处理程序并将其附加到Web请求
  7. 提供要上传的数据
  8. 提供要上传的HTTP表单
  9. (可选)创建一个下载处理程序并将其附加到Web请求
  10. 发送Web请求
  11. 如果在协同程序中,您可能会Send()发出调用结果以等待请求完成
  12. (可选)从下载处理程序读取收到的数据
  13. (可选)从UnityWebRequest对象读取错误信息,HTTP状态代码和响应头

?