86 lines
2.3 KiB
C#
86 lines
2.3 KiB
C#
|
using System.Collections;
|
||
|
using System.Text;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.Events;
|
||
|
using UnityEngine.Networking;
|
||
|
|
||
|
public class WebRequsetTool : Singleton<WebRequsetTool>
|
||
|
{
|
||
|
|
||
|
/// <summary>
|
||
|
/// 网络GET请求
|
||
|
/// </summary>
|
||
|
/// <param name="url">网络链接</param>
|
||
|
/// <param name="action">回调事件</param>
|
||
|
public void Get(string url, UnityAction<string> action)
|
||
|
{
|
||
|
StartCoroutine(GetRequest(url, action));
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 网络POST请求
|
||
|
/// </summary>
|
||
|
/// <param name="url">网络链接</param>
|
||
|
/// <param name="data">请求数据</param>
|
||
|
/// <param name="action">回调函数</param>
|
||
|
public void Post(string url, string data, UnityAction<string> action)
|
||
|
{
|
||
|
StartCoroutine(PostRequest(url, data, action));
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 完成网络GET请求
|
||
|
/// </summary>
|
||
|
/// <param name="url">网络链接</param>
|
||
|
/// <param name="action">回调函数</param>
|
||
|
/// <returns></returns>
|
||
|
IEnumerator GetRequest(string url, UnityAction<string> action)
|
||
|
{
|
||
|
UnityWebRequest request = UnityWebRequest.Get(url);
|
||
|
|
||
|
yield return request.SendWebRequest();
|
||
|
|
||
|
if (request.result == UnityWebRequest.Result.Success)
|
||
|
{
|
||
|
action?.Invoke(request.downloadHandler.text);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Debug.LogError(request.error);
|
||
|
}
|
||
|
|
||
|
request.Dispose();
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 完成网络POST请求
|
||
|
/// </summary>
|
||
|
/// <param name="url">网络链接</param>
|
||
|
/// <param name="data">请求数据</param>
|
||
|
/// <param name="action">回调函数</param>
|
||
|
/// <returns></returns>
|
||
|
IEnumerator PostRequest(string url, string data, UnityAction<string> action)
|
||
|
{
|
||
|
UnityWebRequest request = new UnityWebRequest(url, "POST");
|
||
|
|
||
|
byte[] bodyRaw = Encoding.UTF8.GetBytes(data);
|
||
|
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
|
||
|
request.downloadHandler = new DownloadHandlerBuffer();
|
||
|
request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");
|
||
|
|
||
|
yield return request.SendWebRequest();
|
||
|
|
||
|
if (request.result == UnityWebRequest.Result.Success)
|
||
|
{
|
||
|
action?.Invoke(request.downloadHandler.text);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Debug.LogError(request.error);
|
||
|
}
|
||
|
|
||
|
request.Dispose();
|
||
|
}
|
||
|
|
||
|
}
|