Unity + UnityWebRequest的http网络通信

        客户端发送一个http协议数据包给服务端,服务端收到之后就进行解析,然后将结果返回给我们,我们获得数据之后就可以写自己的业务逻辑代码。

        流程:

        a.创建UnityWebRequest对象

        b.配置UnityWebRequest对象

        c.发送请求

 后面有发送账号密码进行登录请求的两种方式。

-->从 HTTP 服务器下载文本或二进制数据 (GET)

//从服务器获取文件内容(如热更新需要获取版本号)
    IEnumerator ReadResVersion() {
        UnityWebRequest req = UnityWebRequest.Get("http://127.0.0.1:6080/version.txt");
        yield return req.SendWebRequest();

        Debug.Log(req.downloadHandler.text);

        yield break;
    }

-->从 HTTP 服务器下载纹理 (GET)

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
 
public class MyBehaviour : MonoBehaviour {
    void Start() {
        StartCoroutine(GetTexture());
    }
 
    IEnumerator GetTexture() {
        UnityWebRequest www = UnityWebRequestTexture.GetTexture("http://www.my-server.com/image.png");
        yield return www.SendWebRequest();

        if(www.isNetworkError || www.isHttpError) {
            Debug.Log(www.error);
        }
        else {
            Texture myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture;
        }
    }
}
或者也可以使用 helper getter 来实现 GetTexture:

    IEnumerator GetTexture() {
            UnityWebRequest www = UnityWebRequestTexture.GetTexture("http://www.my-server.com/image.png");
            yield return www.SendWebRequest();

            Texture myTexture = DownloadHandlerTexture.GetContent(www);
        }

-->从 HTTP 服务器下载声音 (GET)

//从服务器下载资源文件,如声音、图片
    IEnumerator downloadResFile() {
        string url = "http://127.0.0.1:6080/Sounds/Audio_Bg_LogOn.mp3";
        UnityWebRequest req = UnityWebRequest.Get(url);
        yield return req.SendWebRequest();

        byte[] body = req.downloadHandler.data;

        // 保存到你的本地,  C#读写文件就可以了;
        string fileName = Application.persistentDataPath + "/80000.mp3";
        Debug.Log(fileName);

        GameUtility.SafeWriteAllBytes(fileName, body);
        yield break;
    }

-->从 HTTP 服务器下载 AssetBundle (GET)

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
 
public class MyBehaviour : MonoBehaviour {
    void Start() {
        StartCoroutine(GetAssetBundle());
    }
 
    IEnumerator GetAssetBundle() {
        UnityWebRequest www = UnityWebRequest.GetAssetBundle("http://www.my-server.com/myData.unity3d");
        yield return www.SendWebRequest();
 
        if(www.isNetworkError || www.isHttpError) {
            Debug.Log(www.error);
        }
        else {
            AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
        }
    }
}

-->将原始数据上传到 HTTP 服务器 (PUT)

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
 
public class MyBehavior : MonoBehaviour {
    void Start() {
        StartCoroutine(Upload());
    }
 
    IEnumerator Upload() {
        byte[] myData = System.Text.Encoding.UTF8.GetBytes("This is some test data");
        UnityWebRequest www = UnityWebRequest.Put("http://www.my-server.com/upload", myData);
        yield return www.SendWebRequest();
 
        if(www.isNetworkError || www.isHttpError) {
            Debug.Log(www.error);
        }
        else {
            Debug.Log("Upload complete!");
        }
    }
}
//上传声音文件到服务器(如游戏中玩家说话产生的语音)
    IEnumerator uploadFile() {
        string fileName = Application.persistentDataPath + "/80000.mp3";
        byte[] body = GameUtility.SafeReadAllBytes(fileName);

        UnityWebRequest req = UnityWebRequest.Put("http://127.0.0.1:6080/UploadFile", body);
        yield return req.SendWebRequest();

        Debug.Log(req.downloadHandler.text);

         yield break;
    }

发送账号密码进行登录请求的两种方式:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class HttpRequest : MonoBehaviour {

    public string username;
    public string password;

    /// 例用账号密码登录的时候
    /// <summary>
    /// 一种Get方法 
    /// UnityWebRequest.Get("http://192.168.1.1:9982/user/login?username=tony&password=123");
    /// </summary>
    /// <returns></returns>
    public IEnumerator HttpRequest1()
    {
        UnityWebRequest webRequest = UnityWebRequest.Get("url");
        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            //网络错误
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                //这时候应该能拿到数据了
            }
        }
    }
    /// 例用账号密码登录的时候
    /// <summary>
    /// 一种Post方法
    /// UnityWebRequest.Post("http://192.168.1.1:9982/user/login", form);
    /// </summary>
    /// <returns></returns>
    public IEnumerator HttpRequest2()
    {
        WWWForm form = new WWWForm();
        form.AddField("username", username);
        form.AddField("password", password);

        UnityWebRequest webRequest = UnityWebRequest.Post("url", form);
        //发送请求后等待回应
        yield return webRequest.SendWebRequest();
        
        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            //网络错误
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                //这时候应该能拿到数据了
            }
        }
    }
}

后续补充:

        自己项目中的实际应用,接口需要跟后端一起确定,代码可能有些不够严谨。

using Global;
using LitJson;
using MyUIFrame;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.Types;


//=================================App登录注册界面===============================
//获取验证码请求
public class AppCaptchaReq
{
    public string mobile;//手机号 账号
    public string type;//1邮箱 2登录 3注册 4修改密码
}
//注册请求
public class AppRegistReq
{
    public string mobile;//账号 手机号
    public string password;//密码
    public string code;//验证码
    public string uuid;
}
//登录请求
public class AppLoginReq
{
    public string userName;//账号 手机号
    public string password;//密码
    public string code;//验证码
    public string uuid;
}
//修改密码请求
public class AppChangePasswordReq
{
    public string userName;//账号 手机号
    public string password;//密码
    public string code;//验证码
    public string uuid;
}
//创建家长账号请求
public class AppCreateParentAccountReq
{
    public string userName;//账号
    public string password;//密码
    public string nickName;//姓名
    public int sex;//性别
    public int age;//年龄
    public string userClass;//班级
    public int playTime;//游戏时长
    //public string idCardNumber;//身份证号码
    public int educational;//学历
    public string address;//地址
    public int nation;//民族
    public string birthday;//生日
}
//创建子账号请求
public class AppCreateChildAccountReq
{
    public string userName;//账号
    public string password;//密码
    public string nickName;//姓名
    public int sex;//性别
    public int age;//年龄
    public string userClass;//班级
    public int playTime;//游戏时长
    public int educational;//学历
    public string address;//地址
    public int nation;//民族
    public string birthday;//生日
}
//修改家长资料/子账号资料请求
public class AppChangeParentChildAccountInfoReq
{
    public string id;//id
    public string password;//密码
    public int sex;//性别
    public string email;//邮箱
    public string avatar;//头像
    public int age;//年龄
    public string nickName;//昵称
    public int weight;//体重
    public string userClass;//班级
    public string cardNum;//身份证号码
    public int educational;//学历
    public string address;//地址
    public int nation;//民族
    public string birthday;//生日
    public int playTime;//游戏时长
    public int status;//是否删除了账号(暂时删除,随时可恢复)  0 正常 1停用
}
//修改手机号码请求
public class AppChangeMobileReq
{
    public string userName;//手机号
    public string code;//验证码
    public string uuid;
}
//验证码请求回应信息
public class AppCaptchaResInfo
{
    public int code;
    public string msg;
    public AppCaptchaData data;//data部分也是json字符串,所以要用个类
}
public class AppCaptchaData
{
    public string enable;
    public string uuid;
}
public class AppResInfo
{
    public int code;
    public string msg;
    public TokenData data;//data部分也是json字符串,所以要用个类
}
//=================================游戏登录界面===============================
public class GameAccount
{
    public string username;
    public string password;
    public string type;
    public string mobile;
    public string code;
    public string uuid;
}
//登录请求
public class GameLoginReq
{
    public string userName;//账号 手机号
    public string password;//密码
}
public class TokenData
{
    public string access_token;//获取到的token
}
//游戏登录界面账号请求回应信息
public class GameAccountResInfo
{
    public int code;
    public string msg;
    public TokenData data;//data部分也是json字符串,所以要用个类
}

public class ClientId
{
    public string clientId;
}

public class HttpClient : MonoBehaviour
{
    public static HttpClient instance;
    //多人服务器(本地服务器)
    string HttpUrl = "http://xx.xx.xx.xx:8080";
    //云服务器
    //string HttpUrl = "http://xx.xx.xx.xx:8080";
    //本地服务器(暂时没用)
    //string HttpUrl = "http://xx.xx.xx.xx:8080";
    //后端电脑
    //string HttpUrl = "http://xx.xx.xx.xx:8080";

    #region App登录注册界面
    private string m_AppUsername;//账号 等于手机号
    private string m_AppPassword;//密码
    private string m_AppCaptcha;//验证码
    private string m_AppUuid;// uuid
    private string m_AppCaptchaType;//验证码请求方式 1邮箱 2登录 3注册 4修改密码

    private bool m_AppIsRegistReqSucc = false;//注册请求是否成功
    private bool m_AppIsLoginReqSucc = false;//登录请求是否成功
    private bool m_AppIsChangePasswordReqSucc = false;//修改密码请求是否成功
    private bool m_AppIsCaptchaReqSucc = false;//验证码请求是否成功
    private bool m_AppIsCreateAccountReqSucc = false;//创建账号请求是否成功
    private bool m_AppIsCreateParentAccountReqSucc = false;//创建账号请求是否成功
    private bool m_AppIsChangeMobileReqSucc = false;//修改手机号码请求是否成功
    private bool m_AppIsGetAllChildAccountReqSucc = false;//查询所有子账号请求是否成功
    private bool m_AppIsChangeParentAccountReqSucc = false;//修改家长账号请求是否成功
    private bool m_AppIsChangeChildAccountReqSucc = false;//修改子账号请求是否成功

    private Coroutine m_AppCaptchaCor;//验证码请求
    private Coroutine m_AppRegistCor;//注册请求
    private Coroutine m_AppLoginCor;//登录请求
    private Coroutine m_AppChangePasswordCor;//修改密码请求
    private Coroutine m_AppCreateChildAccountCor;//创建子账号请求
    private Coroutine m_AppCreateParentAccountCor;//创建家长账号请求
    private Coroutine m_AppChangeMobileCor;//修改家长手机号码请求
    private Coroutine m_AppGetAllChildAccountCor;//查询所有子账号
    private Coroutine m_AppChangeParentAccountCor;//修改家长账号资料
    private Coroutine m_AppChangeChildAccountCor;//修改子账号资料
    private Coroutine m_GameLoginCor;//游戏登录

    private string m_AppRegistPath = "/user/user/registerUser";
    private string m_AppLoginPath = "/auth/app/login";
    private string m_AppChangePasswordPath = "/user/user/updatePwd";//修改密码
    private string m_AppChangeMobilePath = "/user/user/updateMobile";//修改手机号
    private string m_AppCaptchaPath = "/code";//获取验证码
    private string m_AppCreateAccountPath = "/user/user/createChildUser";//
    private string m_AppUpdateAccountPath = "/user/user/updateChildUser";//
    private string m_AppRequestGetAllChildAccountPath = "/user/user/getList";//查询子账号
    #endregion

    #region 游戏登录界面
    private string m_GameUsername;
    private string m_GamePassword;
    private string m_GameToken;
    private bool m_GameIsReqAccountSucc = false;//请求账号密码是否成功
    private bool m_GameIsReqBindDeviceSucc = false;//请求绑定设备是否成功

    private bool m_GameIsLoginReqSucc = false;//账号密码登录是否成功

    private LoginUIForm loginUIForm;

    private string m_GameLoginPath = "/auth/app/pwdLogin";

    private string m_GameAccountPath = "/auth/app/login";
    private string m_GameBindDevicePath = "/user/user/bindEquip";
    //多人服务器
    //string GameUrl = "http://10.5.1.156:8080/auth/app/login";//账号密码   
    //string GameUr2 = "http://10.5.1.156:8080/user/user/bindEquip";//绑定设备

    //云服务器
    //string GameUrl = "http://121.40.120.227:8080/auth/app/login";//账号密码   本地服务器10.5.1.121,王鹏电脑148  云服务器121.40.120.227
    //string GameUr2 = "http://121.40.120.227:8080/user/user/bindEquip";//绑定设备   本地服务器10.5.1.121,王鹏电脑148  云服务器121.40.120.227

    //本地服务器
    //string GameUrl = "http://10.5.1.121:8080/auth/app/login";//账号密码   本地服务器10.5.1.121,王鹏电脑148  云服务器121.40.120.227
    //string GameUr2 = "http://10.5.1.121:8080/user/user/bindEquip";//绑定设备   本地服务器10.5.1.121,王鹏电脑148  云服务器121.40.120.227

    //后端电脑
    //string GameUrl = "http://10.5.1.148:8080/auth/app/login";//账号密码   本地服务器10.5.1.121,王鹏电脑148  云服务器121.40.120.227
    //string GameUr2 = "http://10.5.1.148:8080/user/user/bindEquip";//绑定设备   本地服务器10.5.1.121,王鹏电脑148  云服务器121.40.120.227
    #endregion

    private void Awake()
    {
        instance = this;
        m_AppCaptcha = "-1";
    }

    private void Update()
    {
        #region 测试
        //if (Input.GetKeyDown(KeyCode.Keypad1))//注册请求验证码
        //{
        //    Debug.Log("注册请求验证码");//手机号、类型
        //    AppRequestCaptcha("17620953826", "3");
        //}
        //if (Input.GetKeyDown(KeyCode.Keypad2))//登录请求验证码
        //{
        //    Debug.Log("登录请求验证码");//手机号、类型
        //    AppRequestCaptcha("17620953826", "2");
        //}
        //if (Input.GetKeyDown(KeyCode.Keypad3))//修改密码请求验证码
        //{
        //    Debug.Log("修改密码请求验证码");//手机号、类型
        //    AppRequestCaptcha("17620953826", "4");
        //}
        //if (Input.GetKeyDown(KeyCode.Keypad4))//注册请求
        //{
        //    if(m_AppIsCaptchaReqSucc && m_AppCaptchaType == "3")
        //    {
        //        Debug.Log("注册请求");//账号、密码、验证码
        //        AppRequestRegist("17620953826", "123456", "453476");
        //    }
        //    else
        //    {
        //        Debug.Log("注册请求失败,m_AppIsCaptchaReqSucc = " + m_AppIsCaptchaReqSucc + " ,m_CaptchaType = " + m_AppCaptchaType);
        //    }
        //}
        //if (Input.GetKeyDown(KeyCode.Keypad5))//登录请求
        //{
        //    if (m_AppIsCaptchaReqSucc && m_AppCaptchaType == "2")
        //    {
        //        Debug.Log("登录请求");//账号、密码、验证码
        //        AppRequestLogin("15019478646", "123456", "453476");
        //    }
        //    else
        //    {
        //        Debug.Log("登录请求失败,m_AppIsCaptchaReqSucc = " + m_AppIsCaptchaReqSucc + " ,m_CaptchaType = " + m_AppCaptchaType);
        //    }
        //}
        //if (Input.GetKeyDown(KeyCode.Keypad6))//修改密码请求
        //{
        //    if (m_AppIsCaptchaReqSucc && m_AppCaptchaType == "4")
        //    {
        //        Debug.Log("修改密码请求");//账号、密码、验证码
        //        AppRequestChangePassword("15019478646", "654321", "453476");
        //    }
        //    else
        //    {
        //        Debug.Log("修改密码请求失败,m_AppIsCaptchaReqSucc = " + m_AppIsCaptchaReqSucc + " ,m_CaptchaType = " + m_AppCaptchaType);
        //    }
        //}
        //if (Input.GetKeyDown(KeyCode.Keypad7))//创建账号请求
        //{
        //    Debug.Log("创建账号请求");
        //    AppRequestCreateAccount("15019478646", "123456", "王小明", "8", "男", "3|2", "123456789987654321", 60);
        //}
        #endregion
    }

    #region App登录注册界面
    public void SetAppUsername(string username)
    {
        m_AppUsername = username;
    }
    public void SetAppPassword(string password)
    {
        m_AppPassword = password;
    }
    public void SetAppCaptcha(string captcha)
    {
        m_AppCaptcha = captcha;
    }
    public void SetAppCaptchaType(string captchaType)
    {
        m_AppCaptchaType = captchaType;
    }
    //App部分请求验证码
    public void AppRequestCaptcha(string mobile, string type)
    {
        m_AppCaptchaType = type;
        m_AppCaptchaCor = StartCoroutine(IEAppRequestCaptcha(mobile, type));
    }
    //App部分请求验证码 "修改手机号"
    public void AppRequestCaptcha1(string mobile, string type)
    {
        m_AppCaptchaType = type;
        m_AppCaptchaCor = StartCoroutine(IEAppRequestCaptchaByJson1(mobile, type));
    }
    //App部分请求注册
    public void AppRequestRegist(string username, string password, string captcha, string uuid)
    {
        m_AppRegistCor = StartCoroutine(IEAppRequestRegistByJson(username, password, captcha, uuid));
    }
    //App部分请求登录
    public void AppRequestLogin(string username, string password, string captcha, string uuid)
    {
        m_AppLoginCor = StartCoroutine(IEAppRequestLoginByJson(username, password, captcha, uuid));
    }
    //App部分请求更改密码
    public void AppRequestChangePassword(string username, string password, string captcha, string uuid)
    {
        m_AppChangePasswordCor = StartCoroutine(IEAppRequestChangePasswordByJson(username, password, captcha, uuid));
    }
    //App部分请求所有子账号
    public void AppRequestGetAllChildAccount(string mobile)
    {
        m_AppGetAllChildAccountCor = StartCoroutine(IEAppRequestGetAllChildAccount(mobile));
    }
    //App部分请求创建子账号
    public void AppRequestCreateChildAccount(AppCreateChildAccountReq account)
    {
        m_AppCreateChildAccountCor = StartCoroutine(IEAppRequestCreateChildAccountByJson(account));
    }
    //App部分请求修改子账号资料
    public void AppRequestChangeChildAccount(AppChangeParentChildAccountInfoReq account)
    {
        m_AppChangeChildAccountCor = StartCoroutine(IEAppRequestChangeChildAccountByJson(account));
    }
    //App部分请求创建家长账号
    public void AppRequestCreateParentAccount(AppCreateParentAccountReq account)
    {
        m_AppCreateParentAccountCor = StartCoroutine(IEAppRequestCreateParentAccountByJson(account));
    }
    //App部分请求修改家长账号资料
    public void AppRequestChangeParentAccount(AppChangeParentChildAccountInfoReq account)
    {
        m_AppChangeParentAccountCor = StartCoroutine(IEAppRequestChangeParentAccountByJson(account));
    }
    //App部分请求更改家长手机号
    public void AppRequestChangeMobile(string userName, string captcha, string uuid)
    {
        m_AppChangeMobileCor = StartCoroutine(IEAppRequestChangeMobileByJson(userName, captcha, uuid));
    }

    //App登录注册界面请求获取短信验证码
    IEnumerator IEAppRequestCaptcha(string mobile, string type)
    {
        UnityWebRequest webRequest = UnityWebRequest.Get(HttpUrl + m_AppCaptchaPath + "?mobile=" + mobile + "&type=" + type);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsCaptchaReqSucc = false;
            Debug.Log("App登录注册界面,请求验证码网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppCaptchaResInfo info = JsonMapper.ToObject<AppCaptchaResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,请求验证码成功");
                        m_AppIsCaptchaReqSucc = true;
                        m_AppUuid = info.data.uuid;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "Captcha", m_AppCaptchaType, m_AppUuid);
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,请求验证码失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,请求验证码失败" + info.code);
                }
            }
        }
    }
    //App登录注册界面请求获取短信验证码 "修改手机号"
    IEnumerator IEAppRequestCaptchaByJson1(string mobile, string type)
    {
        UnityWebRequest webRequest = UnityWebRequest.Get(HttpUrl + m_AppCaptchaPath + "?mobile=" + mobile + "&type=" + type);
        //添加请求头信息
        webRequest.SetRequestHeader("Authorization", "Bearer " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsCaptchaReqSucc = false;
            Debug.Log("App登录注册界面,修改手机号--请求验证码网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppCaptchaResInfo info = JsonMapper.ToObject<AppCaptchaResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,修改手机号--请求验证码成功");
                        m_AppIsCaptchaReqSucc = true;
                        m_AppUuid = info.data.uuid;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "Captcha", m_AppCaptchaType, m_AppUuid);
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,修改手机号--请求验证码失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,修改手机号--请求验证码失败" + info.code);
                }
            }
        }
    }

    //App登录注册界面通过json方式请求注册  发送Json数据格式的Post请求
    IEnumerator IEAppRequestRegistByJson(string username, string password, string captcha, string uuid)
    {    
        AppRegistReq account = new AppRegistReq();
        account.mobile = username;
        account.password = password;
        account.code = captcha;
        account.uuid = uuid;
        string jsonStr = JsonMapper.ToJson(account);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_AppRegistPath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsRegistReqSucc = false;
            Debug.Log("App登录注册界面,注册请求网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppResInfo info = JsonMapper.ToObject<AppResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,注册请求成功");
                        m_AppIsRegistReqSucc = true;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "Regist", "1", null);//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,注册请求失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,注册请求失败" + info.code);
                }
            }
        }
    }

    //App登录注册界面通过json方式请求登录  发送Json数据格式的Post请求
    IEnumerator IEAppRequestLoginByJson(string username, string password, string captcha, string uuid)
    {
        AppLoginReq account = new AppLoginReq();
        account.userName = username;
        account.password = password;
        account.code = captcha;
        account.uuid = uuid;
        string jsonStr = JsonMapper.ToJson(account);
        Debug.Log("登录请求:" + jsonStr);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_AppLoginPath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsLoginReqSucc = false;
            Debug.Log("App登录注册界面,请求登录网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                //解决字符串中文乱码问题
                Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
                string str = reg.Replace(webRequest.downloadHandler.text, delegate (Match m) { return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString(); });

                AppResLoginInfo info = JsonMapper.ToObject<AppResLoginInfo>(str);

                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,请求登录成功");
                        m_AppIsLoginReqSucc = true;
                        //全局保存家长账号信息
                        GlobalParamMgr.G_AppParentAccountInfo = info;
                        //m_AppToken = info.data.access_token;//m_AppToken暂时不用放到GlobalParamMgr中
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "Login", "1", null);//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,请求登录失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,请求登录失败" + info.code);
                }
            }
        }
    }

    //App登录注册界面通过json方式请求更改密码  发送Json数据格式的Post请求
    IEnumerator IEAppRequestChangePasswordByJson(string username, string password, string captcha, string uuid)
    {
        AppChangePasswordReq account = new AppChangePasswordReq();
        account.userName = username;
        account.password = password;
        account.code = captcha;
        account.uuid = uuid;
        string jsonStr = JsonMapper.ToJson(account);
        Debug.Log("更改密码请求:" + jsonStr);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_AppChangePasswordPath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsChangePasswordReqSucc = false;
            Debug.Log("App登录注册界面,请求更改密码网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppResInfo info = JsonMapper.ToObject<AppResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,请求更改密码成功");
                        m_AppIsChangePasswordReqSucc = true;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "ChangePW", "1", null);//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,请求更改密码失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,请求更改密码失败" + info.code);
                }
            }
        }
    }

    //App登录注册界面请求获取所有子账号
    IEnumerator IEAppRequestGetAllChildAccount(string mobile)
    {
        UnityWebRequest webRequest = UnityWebRequest.Get(HttpUrl + m_AppRequestGetAllChildAccountPath);
        //添加请求头信息
        webRequest.SetRequestHeader("Authorization", "Bearer " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsGetAllChildAccountReqSucc = false;
            Debug.Log("App登录注册界面,查询所有子账号网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppResChildAccountInfo info = JsonMapper.ToObject<AppResChildAccountInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,查询所有子账号成功");
                        m_AppIsGetAllChildAccountReqSucc = true;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.AppGetAllChildAccount.ToString(), "GetAllChildAccount", "1", info);
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,查询所有子账号失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,查询所有子账号失败" + info.code);
                }
            }
        }
    }

    //App登录注册界面通过json方式请求创建子账号 发送Json数据格式的Post请求
    IEnumerator IEAppRequestCreateChildAccountByJson(AppCreateChildAccountReq account)
    {
        string jsonStr = JsonMapper.ToJson(account);
        //解决litjson转换的字符串中文乱码问题
        Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
        jsonStr = reg.Replace(jsonStr, delegate (Match m) { return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString(); });
        Debug.Log("创建子账号请求:" + jsonStr + ", AppToken = " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_AppCreateAccountPath, UnityWebRequest.kHttpVerbPOST);
        //添加请求头信息
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        webRequest.SetRequestHeader("Authorization", "Bearer " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);
        //添加请求体信息
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsCreateAccountReqSucc = false;
            Debug.Log("App登录注册界面,请求创建子账号网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppResInfo info = JsonMapper.ToObject<AppResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,请求创建子账号成功");
                        m_AppIsCreateAccountReqSucc = true;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "CreateChildAccount", "1", account);//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,请求创建子账号失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,请求创建子账号失败" + info.code);
                }
            }
        }
    }

    //App登录注册界面通过json方式请求修改子账号资料 发送Json数据格式的Post请求
    IEnumerator IEAppRequestChangeChildAccountByJson(AppChangeParentChildAccountInfoReq account)
    {
        string jsonStr = JsonMapper.ToJson(account);
        //解决litjson转换的字符串中文乱码问题
        Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
        jsonStr = reg.Replace(jsonStr, delegate (Match m) { return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString(); });
        Debug.Log("修改子账号资料请求:" + jsonStr);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_AppUpdateAccountPath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        webRequest.SetRequestHeader("Authorization", "Bearer " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsChangeChildAccountReqSucc = false;
            Debug.Log("App登录注册界面,请求修改子账号资料网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppResInfo info = JsonMapper.ToObject<AppResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,请求修改子账号资料成功");
                        m_AppIsChangeChildAccountReqSucc = true;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "ChangeChildAccount", "1", account);//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,请求修改子账号资料失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,请求修改子账号资料失败" + info.code);
                }
            }
        }
    }

    //App家长账号界面通过json方式请求创建家长账号 发送Json数据格式的Post请求
    IEnumerator IEAppRequestCreateParentAccountByJson(AppCreateParentAccountReq account)
    {
        string jsonStr = JsonMapper.ToJson(account);
        //解决litjson转换的字符串中文乱码问题
        Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
        jsonStr = reg.Replace(jsonStr, delegate (Match m) { return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString(); });
        Debug.Log("提交家长账号信息请求:" + jsonStr + ", AppToken = " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_AppCreateAccountPath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        webRequest.SetRequestHeader("Authorization", "Bearer " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsCreateParentAccountReqSucc = false;
            Debug.Log("App家长账号界面,提交家长账号信息网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppResInfo info = JsonMapper.ToObject<AppResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App家长账号界面,提交家长账号信息成功");
                        m_AppIsCreateParentAccountReqSucc = true;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "CreateParentAccount", "1", account);//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("App家长账号界面,提交家长账号信息失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App家长账号界面,提交家长账号信息失败" + info.code);
                }
            }
        }
    }

    //App登录注册界面通过json方式请求修改子账号资料 发送Json数据格式的Post请求
    IEnumerator IEAppRequestChangeParentAccountByJson(AppChangeParentChildAccountInfoReq account)
    {
        string jsonStr = JsonMapper.ToJson(account);
        //解决litjson转换的字符串中文乱码问题
        Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
        jsonStr = reg.Replace(jsonStr, delegate (Match m) { return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString(); });
        Debug.Log("修改家长账号资料请求:" + jsonStr);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_AppUpdateAccountPath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        webRequest.SetRequestHeader("Authorization", "Bearer " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsChangeParentAccountReqSucc = false;
            Debug.Log("App登录注册界面,请求修改家长账号资料网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppResInfo info = JsonMapper.ToObject<AppResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,请求修改家长账号资料成功");
                        m_AppIsChangeParentAccountReqSucc = true;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "ChangeParentAccount", "1", account);//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,请求修改家长账号资料失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,请求修改家长账号资料失败" + info.code);
                }
            }
        }
    }

    //App登录注册界面通过json方式请求更改密码  发送Json数据格式的Post请求
    IEnumerator IEAppRequestChangeMobileByJson(string userName, string captcha, string uuid)
    {
        AppChangeMobileReq account = new AppChangeMobileReq();
        account.userName = userName;
        account.code = captcha;
        account.uuid = uuid;
        string jsonStr = JsonMapper.ToJson(account);
        Debug.Log("更改手机号码请求:" + jsonStr + ", AppToken = " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_AppChangeMobilePath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        webRequest.SetRequestHeader("Authorization", "Bearer " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_AppIsChangeMobileReqSucc = false;
            Debug.Log("App登录注册界面,请求更改手机号码网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                AppResInfo info = JsonMapper.ToObject<AppResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("App登录注册界面,请求更改手机号码成功");
                        m_AppIsChangeMobileReqSucc = true;
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "ChangeMobile", "1");//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("App登录注册界面,请求更改手机号码失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("App登录注册界面,请求更改手机号码失败" + info.code);
                }
            }
        }
    }
    #endregion

    #region 游戏登录界面
    //===================================现在的================================================
    //Game部分请求登录
    public void GameRequestLogin(string username, string password)
    {
        m_GameLoginCor = StartCoroutine(IEGameRequestLoginByJson(username, password));
    }

    //App登录注册界面通过json方式请求登录  发送Json数据格式的Post请求
    IEnumerator IEGameRequestLoginByJson(string username, string password)
    {
        GameLoginReq account = new GameLoginReq();
        account.userName = username;
        account.password = password;
        string jsonStr = JsonMapper.ToJson(account);
        Debug.Log("游戏登录请求:" + jsonStr);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_GameLoginPath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        //webRequest.SetRequestHeader("Authorization", "Bearer " + GlobalParamMgr.G_AppParentAccountInfo.data.access_token);
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_GameIsLoginReqSucc = false;
            Debug.Log("Game登录界面,请求登录网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                GameAccountResInfo info = JsonMapper.ToObject<GameAccountResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("Game登录界面,请求登录成功");
                        m_GameIsLoginReqSucc = true;
                        m_GameToken = info.data.access_token;
                        GlobalParamMgr.G_Authorization = m_GameToken;//不用带"Bearer "
                        kernal.EventCenter.SendGameMessage(kernal.EventType.HttpRequestResult.ToString(), "GameLogin", "1");//1成功,0失败
                    }
                    else
                    {
                        Debug.Log("Game登录界面,请求登录失败" + info.code);
                    }
                }
                else
                {
                    Debug.Log("Game登录界面,请求登录失败" + info.code);
                }
            }
        }
    }

    //====================================以前的===============================================
    public bool GetGameIsReqAccountSucc()
    {
        return m_GameIsReqAccountSucc;
    }
    public bool GetGameIsReqBindDeviceSucc()
    {
        return m_GameIsReqBindDeviceSucc;
    }

    //设置账号密码
    public void SetAccountInfo(string username, string password)
    {
        m_GameUsername = username;
        m_GamePassword = password;
    }
    //请求验证账号密码
    public void RequestAccount()
    {
        StartCoroutine("HttpRequestAccountByJson");
    }

    //游戏登录界面通过json对象请求账号密码登录  发送Json数据格式的Post请求
    public IEnumerator HttpRequestAccountByJson()
    {
        GameAccount account = new GameAccount();
        account.username = m_GameUsername;
        account.password = m_GamePassword;
        account.type = "0";
        account.mobile = "";
        account.code = "";
        account.uuid = "";
        string jsonStr = JsonMapper.ToJson(account);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_GameAccountPath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_GameIsReqAccountSucc = false;
            Debug.Log("游戏登录界面请求账号密码网络错误");
            loginUIForm.ShowTishi("游戏登录界面请求账号密码网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                GameAccountResInfo info = JsonMapper.ToObject<GameAccountResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        Debug.Log("游戏登录界面账号密码请求成功");
                        loginUIForm.ShowTishi("游戏登录界面账号密码请求成功");
                        m_GameToken = info.data.access_token;
                        GlobalParamMgr.G_Authorization = m_GameToken;//"Bearer "
                        m_GameIsReqAccountSucc = true;
                        Debug.Log("token = " + m_GameToken);
                        //请求绑定设备
                        //StartCoroutine("HttpRequestBindDevice");
                        loginUIForm.CheckRightState(1);//已经请求过了,不管是否成功都进入下一界面
                    }
                    else
                    {
                        loginUIForm.ShowTishi("游戏登录界面账号密码请求失败" + info.code);
                    }
                }
                else
                {
                    loginUIForm.ShowTishi("游戏登录界面账号密码请求失败" + info.code);
                }
            }
        }
    }

    //游戏登录界面绑定设备
    public IEnumerator HttpRequestBindDevice()
    {
        ClientId clientid = new ClientId();
        clientid.clientId = "6055f981c246";//绑定设备
        string jsonStr = JsonMapper.ToJson(clientid);

        UnityWebRequest webRequest = new UnityWebRequest(HttpUrl + m_GameBindDevicePath, UnityWebRequest.kHttpVerbPOST);
        DownloadHandler downloadHandler = new DownloadHandlerBuffer();
        webRequest.downloadHandler = downloadHandler;
        webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");//为了保证发送的是json格式字符串
        webRequest.SetRequestHeader("Authorization", "Bearer " + m_GameToken);
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonStr);
        webRequest.uploadHandler = new UploadHandlerRaw(bodyRaw);

        //发送请求后等待回应
        yield return webRequest.SendWebRequest();

        if (webRequest.isNetworkError || webRequest.isHttpError)
        {
            m_GameIsReqBindDeviceSucc = false;
            Debug.Log("游戏登录界面请求绑定设备网络错误");
            loginUIForm.ShowTishi("游戏登录界面请求绑定设备网络错误");
        }
        else
        {
            //一般请求成功为200(404,500是Server Error)
            if (webRequest.responseCode == 200)
            {
                GameAccountResInfo info = JsonMapper.ToObject<GameAccountResInfo>(webRequest.downloadHandler.text);
                if (info != null)
                {
                    if (info.code == 200)
                    {
                        m_GameIsReqBindDeviceSucc = true;
                        //loginUIForm.ShowTishi("请求绑定设备成功");
                        Global.GlobalParamMgr.G_IsBindHardBike = true;
                        Debug.Log(webRequest.downloadHandler.text);
                        Debug.Log("游戏登录界面请求绑定设备成功");
                    }
                    else
                    {
                        loginUIForm.ShowTishi("游戏登录界面请求绑定设备失败" + info.code);
                    }
                }
                else
                {
                    loginUIForm.ShowTishi("游戏登录界面请求绑定设备失败" + info.code);
                }
            }
        }
        loginUIForm.CheckRightState(1);//已经请求过了,不管是否成功都进入下一界面
    }
    #endregion


    //=================================旧的部分,暂时没用==========================
    //通过表单请求账号密码登录
    //public IEnumerator HttpRequestAccount()
    //{
    //    WWWForm form = new WWWForm();
    //    //form.AddField("type", "2");
    //    //form.AddField("mobile", "17620953826");
    //    form.AddField("username", "user1");
    //    form.AddField("password", "admin123");
    //    form.AddField("code", "aa");
    //    form.AddField("type", "ss");

    //    UnityWebRequest webRequest = UnityWebRequest.Post(GameUr2, form);
    //    //发送请求后等待回应
    //    yield return webRequest.SendWebRequest();

    //    if (webRequest.isNetworkError || webRequest.isHttpError)
    //    {
    //        //网络错误
    //        Debug.Log("网络错误");
    //    }
    //    else
    //    {
    //        //一般请求成功为200(404,500是Server Error)
    //        if (webRequest.responseCode == 200)
    //        {
    //            //这时候应该能拿到数据了
    //            Debug.Log("请求成功");
    //            Debug.Log(webRequest.downloadHandler.text);
    //        }
    //    }
    //}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值