UnityWebRequest
UnityWebRequest
提供了一个用于编写HTTP请求和处理HTTP响应的模块化系统。UnityWebRequest
系统的主要目标是允许Unity游戏与Web浏览器后端进行交互。它还支持高需求的功能,如分块的HTTP请求,流式POST / PUT操作以及对HTTP标头和动词的完全控制。
该系统由两层组成:
• 高级API(HLAPI)包裹低级API,并提供了方便的接口,用于执行常见的操作
• 一个低级别的API(LLAPI)提供了更高级的用户最大的灵活性
支持的平台
UnityWebRequest
系统支持大多数Unity平台:
• 所有版本的编辑器和独立播放器
• WebGL的
• 移动平台:iOS,Android
• 通用Windows平台
• PS4和PSVita
• XboxOne
• 任天堂开关
创建
UnityWebRequest
生态系统将HTTP事务分解为三种不同的操作:
• 向服务器提供数据
• 从服务器接收数据
• HTTP流量控制(例如重定向和错误处理)
为了为高级用户提供更好的界面,这些操作分别由它们自己的对象来管理:
• 一个UploadHandler对象处理数据到服务器的传输
• 一个DownloadHandler对象处理从服务器收到的数据的接收,缓存和后处理
• 一个UnityWebRequest对象管理另外两个对象,并处理HTTP流量控制。该对象是自定义标题和URL定义的位置,以及存储错误和重定向信息的位置。
对于任何HTTP事务,正常的代码流是:
• 创建一个Web请求对象
• 配置Web请求对象
• 设置自定义标题
• 设置HTTP动词(例如GET,POST,HEAD - 在Android以外的所有平台上都允许使用自定义动词)
• 设置网址
• (可选)创建上传处理程序并将其附加到Web请求
• 提供要上传的数据
• 提供要上传的HTTP表单
• (可选)创建一个下载处理程序并将其附加到Web请求
• 发送Web请求
• 如果在协同程序中,您可能会Send()发出调用结果以等待请求完成
• (可选)从下载处理程序读取收到的数据
• (可选)从UnityWebRequest对象读取错误信息,HTTP状态代码和响应头
🔚