Unity SKFramework框架(七)、WebRequester 网络请求模块

举报
CoderZ1010 发表于 2022/09/25 04:00:32 2022/09/25
【摘要】 目录 一、WebInterface Profile 网络接口配置文件 1.创建网络接口配置文件 2.配置网络接口配置文件 3.配置文件的Resources资源路径 二、WebRequester 网络请求管理器 1.注册接口 2.回调函数 3.发起请求 4.注销接口 三、补充说明 1.GET 2.POST ...

目录

一、WebInterface Profile 网络接口配置文件

1.创建网络接口配置文件

2.配置网络接口配置文件

3.配置文件的Resources资源路径

二、WebRequester 网络请求管理器

1.注册接口

2.回调函数

3.发起请求

4.注销接口

三、补充说明

1.GET

2.POST


一、WebInterface Profile 网络接口配置文件

1.创建网络接口配置文件

2.配置网络接口配置文件

在网上找了一个获取当前日期和时间的接口,我们以它为例,配置网络接口配置文件:

Name表示该接口的命名,Url为接口的地址,Method表示该接口的请求方式,该接口以GET方式调用,Args为string类型数组,表示接口的参数名称,该接口不包含任何参数,所以不需要添加。

3.配置文件的Resources资源路径

模块管理器初始化时默认以WebInterface Profile为资源路径进行配置文件的加载:


  
  1. //加载网络接口配置文件
  2. Resources.Load<WebInterfaceProfile>("WebInterface Profile")

二、WebRequester 网络请求管理器

1.注册接口


  
  1. using UnityEngine;
  2. using SK.Framework;
  3. public class Example : MonoBehaviour
  4. {
  5. private void Start()
  6. {
  7. //注册接口
  8. WebRequester.RegisterInterface<TextResponseWebInterface>("北京时间", out var time);
  9. }
  10. }

2.回调函数

通过OnCompleted设置回调函数:


  
  1. //设置回调函数
  2. time.OnCompleted(s => Debug.Log(s));

3.发起请求


  
  1. //发起网络请求
  2. time.SendWebRequest();

或者


  
  1. //发起网络请求
  2. WebRequester.SendWebRequest("北京时间");

4.注销接口

传入接口名称进行注销:


  
  1. //注销接口
  2. WebRequester.UnregisterInterface("北京时间");

三、补充说明

1.GET

        上例中我们以GET的方式发起网络请求调用一个接口,并且没有任何参数,假如接口包含参数arg1和arg2,我们需要在配置文件中进行设置:

在发起请求时需要传入参数的值:


  
  1. //发起网络请求
  2. time.SendWebRequest("value1", "value2");

此时系统会自动将Url进行参数拼接,最终结果为:

apps.game.qq.com/CommArticle/app/reg/gdate.php?arg1=value1&arg2=value2

2.POST

        倘若以POST方式发起网络请求调用接口,传入的第一个参数是POST的数据,后面的参数表示请求头,为可选参数。以实际项目中的一个接口为例:

        如图所示,接口请求方式为POST,请求头需要设置"Content-Type" "application/json",POST的数据是如下结构的JSON内容:


  
  1. [Serializable]
  2. public class HourStatisticsRequest
  3. {
  4. /// <summary>
  5. /// 日期 格式20200426
  6. /// </summary>
  7. public string day;
  8. /// <summary>
  9. /// 类型 1温度
  10. /// </summary>
  11. public int type;
  12. public HourStatisticsRequest()
  13. {
  14. day = string.Format("{0:yyyyMMdd}", DateTime.Now);
  15. type = 1;
  16. }
  17. public HourStatisticsRequest(string day, int type)
  18. {
  19. this.day = day;
  20. this.type = type;
  21. }
  22. }

配置文件:

注册和调用接口:


  
  1. using UnityEngine;
  2. using SK.Framework;
  3. public class Example : MonoBehaviour
  4. {
  5. private void Start()
  6. {
  7. //注册接口
  8. WebRequester.RegisterInterface<TextResponseWebInterface>("环境气体数据监测统计", out var hourStatistics);
  9. //设置回调函数
  10. hourStatistics.OnCompleted(response => Debug.Log(response));
  11. //发起请求
  12. hourStatistics.SendWebRequest(JsonUtility.ToJson(new HourStatisticsRequest()), RequestHeader.CONTENTTYPE_APPLICATIONJSON);
  13. }
  14. }

如上所示,请求头的键值以=号进行拼接。

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/124808861

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。