版本:2022.3
语言:英语
使用低级API创建属性访问者
常见操作:使用HLAPI

UnityWebRequest

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

该系统由两层组成

  • 高级API (HLAPI) 对低级API进行封装,并为执行常见操作提供了一个便捷的接口
  • 低级API (LLAPI) 为高级用户提供最大限度的灵活性

支持平台

UnityWebRequest系统支持大多数Unity平台

  • 所有版本的编辑器和独立玩家
  • WebGL
  • 移动平台:iOS、Android
  • 通用Windows平台

架构

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

  • 向服务器提供数据
  • 从服务器接收数据
  • HTTP流控制(例如,重定向和错误处理)

为了提供给高级用户更好的接口,每个操作都由其自身对象管理

  • UploadHandler 对象处理向服务器传输数据
  • DownloadHandler 对象处理从服务器接收、缓冲和后处理数据
  • UnityWebRequest 对象管理其他两个对象,并处理HTTP流控制。在此对象中定义自定义头和URL,并存储错误和重定向信息。

对于任何HTTP事务,正常代码流程为

  • 创建Web请求对象
  • 配置Web请求对象
    • 设置自定义头
    • 设置HTTP动词(例如,GET、POST、HEAD - 在所有平台上都允许使用自定义动词, except for Android)
    • 设置URL
  • (可选)创建上传处理程序并将其附加到Web请求
    • 提供要上传的数据
    • 提供要上传的HTTP表单
  • (可选)创建下载处理程序并将其附加到Web请求
  • 发送Web请求
    • 如果在一个协程内部,你可以将Send()调用的结果挂起,以等待请求完成
  • (可选)从下载处理程序读取接收到的数据
  • (可选)从UnityWebRequest对象中读取错误信息、HTTP状态码和响应头
使用低级API创建属性访问者
常见操作:使用HLAPI