using System.Collections; using System.Text; using UnityEngine; using UnityEngine.Events; using UnityEngine.Networking; public class WebRequsetTool : Singleton { /// /// 网络GET请求 /// /// 网络链接 /// 回调事件 public void Get(string url, UnityAction action) { StartCoroutine(GetRequest(url, action)); } /// /// 网络POST请求 /// /// 网络链接 /// 请求数据 /// 回调函数 public void Post(string url, string data, UnityAction action) { StartCoroutine(PostRequest(url, data, action)); } /// /// 完成网络GET请求 /// /// 网络链接 /// 回调函数 /// IEnumerator GetRequest(string url, UnityAction 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(); } /// /// 完成网络POST请求 /// /// 网络链接 /// 请求数据 /// 回调函数 /// IEnumerator PostRequest(string url, string data, UnityAction 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(); } }