• UnityWebRequest


    UnityWebRequest提供了一套标准的系统模块,来完成Http请求和Http响应,它的基本目标就是满足unity游戏与web后端服务的交互。它另外还支持一些http高级的功能,比如chunked http请求。(数据分块传输),流式 POST/PUT操作,以及操作Http包头和其它的http行为,比如delete,get等。

    UnityWebRequest主要有两部分组成:

    • 高级API(HLAPI  High Level API): 它封装了低级API的接口,提供的接口,使用起来更加友好和方便。
    • 低级API(LLAPI Low Level API) : 它为高级使用者提供了最大程度的灵活性。

    UnityWebRequest支持的平台:

    • 所有的Unity Editor平台和所有的独立运行的应用
    • WebGL
    • 移动平台:IOS,Android
    • 通用的Window平台
    • PS4和PSVita
    • XboxOne
    • Nintendo Switch

    UnityWebRequest 系统的结构

    它将一个Http请求的事务分解成了三个不同的操作:

    • 向服务端提供数据
    • 从服务端获取数据
    • Http流控制(比如重定向,错误捕获等)

    为了向高级用户提供友好方便的接口支持,这些操作被封装到各自所属的对象里面:

    • UploadHandler 负责向服务端发送数据
    • DownloadHandler 负责接收,缓存和处理从服务器接收的数据
    • UnityWebRequest 负责管理其它的两个对象,并且实现Http流的控制操作。在这个对象中,可以自定义Headers信息,URLs,以及存储错误和重定向信息。

    如下图所示:

    使用UnityWebRequest,对于任何一个Http请求事务,通常的代码流程是这样的:

    • 创建一个Web请求对象
    • 配置Web请求对象:设置自定义的Headers,设置Http行为比如GET,POST,HEADER (注意,自定义行为除了安卓平台,其它平台都支持),然后设置请求的URL。
    • (操作)创建一个Upload Handler 并且和Web Request绑定:提供请求的参数数据,或者提供要提交的表单数据
    • (操作)创建一个Download Handler并且和Web Request绑定
    • 发送Web Request,如果是在一个协程中,你需要yield Send()方法的结果,然后等待请求的完成
    • (操作)读取从Download Handler中接收的数据
    • (操作)从UnityWebRequest对象中读取错误信息,Http状态码以及响应的包头信息。
  • 相关阅读:
    AOP在Spring Boot中如何使用
    拦截器在Spring Boot中如何使用
    跨域在Spring Boot中如何处理
    @ControllerAdvice
    文件上传之Spring Boot整合web层
    Git和GitHub
    Spring Boot 整合web层之JSON,gson,fastjson的使用
    Spring boot整合视图层
    Spring Boot中的parent是什么?
    网页自动化,验证码识别函数,深度学习训练
  • 原文地址:https://www.cnblogs.com/wgslucky/p/11523529.html
Copyright © 2020-2023  润新知