Unity SKFramework框架(七)、WebRequester 网络请求模块
【摘要】
目录
一、WebInterface Profile 网络接口配置文件
1.创建网络接口配置文件
2.配置网络接口配置文件
3.配置文件的Resources资源路径
二、WebRequester 网络请求管理器
1.注册接口
2.回调函数
3.发起请求
4.注销接口
三、补充说明
1.GET
2.POST
...
目录
一、WebInterface Profile 网络接口配置文件
一、WebInterface Profile 网络接口配置文件
1.创建网络接口配置文件
2.配置网络接口配置文件
在网上找了一个获取当前日期和时间的接口,我们以它为例,配置网络接口配置文件:
Name表示该接口的命名,Url为接口的地址,Method表示该接口的请求方式,该接口以GET方式调用,Args为string类型数组,表示接口的参数名称,该接口不包含任何参数,所以不需要添加。
3.配置文件的Resources资源路径
模块管理器初始化时默认以WebInterface Profile为资源路径进行配置文件的加载:
//加载网络接口配置文件
Resources.Load<WebInterfaceProfile>("WebInterface Profile")
二、WebRequester 网络请求管理器
1.注册接口
using UnityEngine;
using SK.Framework;
public class Example : MonoBehaviour
{
private void Start()
{
//注册接口
WebRequester.RegisterInterface<TextResponseWebInterface>("北京时间", out var time);
}
}
2.回调函数
通过OnCompleted设置回调函数:
//设置回调函数
time.OnCompleted(s => Debug.Log(s));
3.发起请求
//发起网络请求
time.SendWebRequest();
或者
//发起网络请求
WebRequester.SendWebRequest("北京时间");
4.注销接口
传入接口名称进行注销:
//注销接口
WebRequester.UnregisterInterface("北京时间");
三、补充说明
1.GET
上例中我们以GET的方式发起网络请求调用一个接口,并且没有任何参数,假如接口包含参数arg1和arg2,我们需要在配置文件中进行设置:
在发起请求时需要传入参数的值:
//发起网络请求
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内容:
[Serializable]
public class HourStatisticsRequest
{
/// <summary>
/// 日期 格式20200426
/// </summary>
public string day;
/// <summary>
/// 类型 1温度
/// </summary>
public int type;
public HourStatisticsRequest()
{
day = string.Format("{0:yyyyMMdd}", DateTime.Now);
type = 1;
}
public HourStatisticsRequest(string day, int type)
{
this.day = day;
this.type = type;
}
}
配置文件:
注册和调用接口:
using UnityEngine;
using SK.Framework;
public class Example : MonoBehaviour
{
private void Start()
{
//注册接口
WebRequester.RegisterInterface<TextResponseWebInterface>("环境气体数据监测统计", out var hourStatistics);
//设置回调函数
hourStatistics.OnCompleted(response => Debug.Log(response));
//发起请求
hourStatistics.SendWebRequest(JsonUtility.ToJson(new HourStatisticsRequest()), RequestHeader.CONTENTTYPE_APPLICATIONJSON);
}
}
如上所示,请求头的键值以=号进行拼接。
文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。
原文链接:coderz.blog.csdn.net/article/details/124808861
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)