Unity发送Restful请求参考

代码参考如下:

using System;
using System.Collections;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;

public class RestfulRequest : MonoBehaviour
{
    [Serializable]
    public class ReqestRoadWay
    {
        public int configInfoId;
    }

    public static RestfulRequest instance;

    void Awake()
    {
        instance = this;
    }

    public void Get(string url, Action<bool, string> action = null)
    {
        StartCoroutine(GetRequest(url, action));
    }

    IEnumerator GetRequest(string url, Action<bool, string> action)
    {
        using (UnityWebRequest request = UnityWebRequest.Get(url))
        {
            yield return request.SendWebRequest();
            string strResult = "";
            if (request.result == UnityWebRequest.Result.ConnectionError)
            {
                strResult = request.error;
            }
            else
            {
                strResult = request.downloadHandler.text;
            }

            action?.Invoke(request.result == UnityWebRequest.Result.ProtocolError, strResult);
        }
    }

    public void Post(string url, string data, Action<bool, string> action = null)
    {
        StartCoroutine(PostRequest(url, data, action));
    }

    IEnumerator PostRequest(string url, string data, Action<bool, string> action)
    {
        using (UnityWebRequest request = new UnityWebRequest(url, "POST"))
        {
            request.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(data));
            request.SetRequestHeader("content-type", "application/json;charset=utf-8");
            request.downloadHandler = new DownloadHandlerBuffer();
            yield return request.SendWebRequest();
            string strResult = "";
            if (request.result == UnityWebRequest.Result.ConnectionError)
            {
                strResult = request.error;
            }
            else
            {
                strResult = request.downloadHandler.text;
            }

            action?.Invoke(request.result == UnityWebRequest.Result.ProtocolError, strResult);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/ttod/article/details/129283596