[GameFramework]Demo7-发起Web请求

本文 Game Framework 版本:3.1.1

本文 Unity3D 版本:2017.3

更多GF教程和实例:https://github.com/mutouzdl/gameframework_demo.git

转载请注明,原文地址:http://www.benmutou.com/archives/2603
文章来源:笨木头与游戏开发

虽然官方目前还没有写WebRequest组件的文档,但是,这个组件的API相对比较简单,我也简单地演示其中一个吧。

1.API列表

WebRequest组件用于发起短链接的请求,包括Get、Post,以上几个不同的AddWebRequest函数是用于在发生数据的时候附上post数据、Form表单数据,这个看参数名就知道了。至于userData,当然是自定义的数据,在请求成功或失败时可以获取这个自定义数据。

2.一个简单的Get请求

新建一个场景(Demo7_Launch)和一个初始流程(Demo7_ProcedureLaunch),流程代码如下:

    using GameFramework;
    using GameFramework.Event;
    using GameFramework.Procedure;
    using UnityEngine;
    using UnityGameFramework.Runtime;
    using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
    public class Demo7_ProcedureLaunch : ProcedureBase {
        protected override void OnEnter (ProcedureOwner procedureOwner) {
            base.OnEnter (procedureOwner);
            // 获取框架事件组件
            EventComponent Event
                = UnityGameFramework.Runtime.GameEntry.GetComponent<EventComponent> ();
            Event.Subscribe (WebRequestSuccessEventArgs.EventId, OnWebRequestSuccess);
            Event.Subscribe (WebRequestFailureEventArgs.EventId, OnWebRequestFailure);
            // 获取框架网络组件
            WebRequestComponent WebRequest
                = UnityGameFramework.Runtime.GameEntry.GetComponent<WebRequestComponent> ();
            string url = "http://gameframework.cn/starforce/version.txt";
            WebRequest.AddWebRequest (url, this);
        }
        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 ("请求失败");
        }
    }

使用Event组件订阅请求成功和失败事件,使用WebRequest组件的AddWebRequest发起请求,请求的地址是官方博客的一个文本文件。

设置好初始流程后,运行游戏,如果你能看到以下日志输出,那就代表你成功了:

results matching ""

    No results matching ""