官方说明:提供使用短连接的功能,可以用 Get 或者 Post 方法向服务器发送请求并获取响应数据,可指定允许几个 Web 请求器进行同时请求。
web请求内容不多,为了专栏完整性,简要说明一下。
Web 请求组件WebRequestComponent的public方法可获取代理相关信息,添加web请求任务,以及三个事件(开始请求、请求成功、请求失败)。
使用也很简单,增加请求,通过事件获取返回信息,下面贴上代码:
using System;
using GameFramework;
using UnityGameFramework.Runtime;
using GameFramework.Event;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
namespace StarForce
{
public class ProcedureWeb : ProcedureBase
{
public override bool UseNativeDialog => throw new NotImplementedException();
public override void OnEnter(ProcedureOwner procedureOwner)
{
base.OnEnter(procedureOwner);
GameEntry.Event.Subscribe(WebRequestSuccessEventArgs.EventId, OnWebRequestSuccess);
GameEntry.Event.Subscribe(WebRequestFailureEventArgs.EventId, OnWebRequestFailure);
string url = "https://blog.csdn.net/qq_37619255?type=blog";
GameEntry.WebRequest.AddWebRequest(url, this);
}
public override void OnLeave(ProcedureOwner procedureOwner,bool isShutdown)
{
base.OnLeave(procedureOwner, isShutdown);
GameEntry.Event.Unsubscribe(WebRequestSuccessEventArgs.EventId, OnWebRequestSuccess);
GameEntry.Event.Unsubscribe(WebRequestFailureEventArgs.EventId, OnWebRequestFailure);
}
private void OnWebRequestSuccess(object sender, GameEventArgs e)
{
WebRequestSuccessEventArgs ne = (WebRequestSuccessEventArgs)e;
// 获取回应的数据
string responseJson = Utility.Converter.GetString(ne.GetWebResponseBytes());
Log.Debug("responseJson:" + responseJson);
}
private void OnWebRequestFailure(object sender, GameEventArgs e)
{
Log.Warning("请求失败");
}
}
}