首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Unity SKFramework框架(七)、Web Requester 网络请求模块

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

作者头像
CoderZ
发布2022-08-29 17:10:08
发布2022-08-29 17:10:08
1K0
举报

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

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

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

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

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

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

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

代码语言:javascript
复制
//加载网络接口配置文件
Resources.Load<WebInterfaceProfile>("WebInterface Profile")

二、WebRequester 网络请求管理器

1.注册接口

代码语言:javascript
复制
using UnityEngine;
using SK.Framework;

public class Example : MonoBehaviour
{
    private void Start()
    {
        //注册接口
        WebRequester.RegisterInterface<TextResponseWebInterface>("北京时间", out var time);
    }
}
代码语言:javascript
复制
2.回调函数

通过OnCompleted设置回调函数:

代码语言:javascript
复制
//设置回调函数
time.OnCompleted(s => Debug.Log(s));

3.发起请求

代码语言:javascript
复制
//发起网络请求
time.SendWebRequest();
代码语言:javascript
复制
或者
代码语言:javascript
复制
//发起网络请求
WebRequester.SendWebRequest("北京时间");
代码语言:javascript
复制

4.注销接口

传入接口名称进行注销:

代码语言:javascript
复制
//注销接口
WebRequester.UnregisterInterface("北京时间");

三、补充说明

1.GET

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

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

代码语言:javascript
复制
//发起网络请求
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内容:

代码语言:javascript
复制
[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;
    }
}

配置文件:

注册和调用接口:

代码语言:javascript
复制
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);
    }
}

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 当代野生程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建网络接口配置文件
  • 2.配置网络接口配置文件
  • 3.配置文件的Resources资源路径
  • 1.注册接口
  • 4.注销接口
  • 三、补充说明
    • 1.GET
    • 2.POST
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档