与 Web 服务器交互
Use the UnityWebRequest system to allow your application to interact with a web server via HTTP.
阅读时间3 分钟最后更新于 1 个月前
UnityWebRequest 提供了一个模块化系统,用于构成 HTTP 请求和处理 HTTP 响应。UnityWebRequest 系统的主要目标是让 Unity 游戏与 Web 浏览器后端进行交互。该系统还支持高需求功能,例如分块 HTTP 请求、流式 POST/PUT 操作以及对 HTTP 标头和动词的完全控制。
该系统由两层组成:
支持的平台
UnityWebRequest 系统支持大多数 Unity 平台:
- 所有版本的 Editor 和独立平台播放器
- Web
- 移动平台:iOS 和 Android
- 通用 Windows 平台
架构
UnityWebRequest 生态系统将 HTTP 事务分解为三个不同的操作:
- 向服务器提供数据
- 从服务器接收数据
- HTTP 流量控制(例如,重定向和错误处理)
为了给高级用户提供更好的界面,这些操作均由自己的对象进行管理:
- 对象处理数据到服务器的传输
UploadHandler - 对象处理从服务器接收的数据的接收、缓冲和后处理
DownloadHandler - 对象管理其他两个对象,同时还处理 HTTP 流量控制。此对象是定义自定义标头和 URL 的位置,也是存储错误和重定向信息的位置。
UnityWebRequest

对于任何 HTTP 事务,正常的代码流程如下:
-
创建 Web 请求对象
-
配置 Web 请求对象
- 设置自定义标头
- 设置 HTTP 动词(例如 GET、POST 和 HEAD - 除 Android 之外的所有平台都允许使用自定义动词)
- 设置 URL
-
(可选)创建上传处理程序并将其附加到 Web 请求
- 提供要上传的数据
- 提供要上传的 HTTP 表单
-
(可选)创建下载处理程序并将其附加到 Web 请求
-
发送 Web 请求
- 如果在协程中,可获得 调用的结果以等待请求完成
Send()
- 如果在协程中,可获得
-
(可选)读取从下载处理程序接收的数据
-
(可选)从 UnityWebRequest 对象中读取错误信息、HTTP 状态码和响应标头