代码参考如下:
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);
}
}
}