HttpsManager.cs
1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
using System.Text;
public class HttpsManager : Singleton<HttpsManager>
{
// GET请求示例
public IEnumerator GetRequest(string url, System.Action<string> onSuccess, System.Action<string> onError = null)
{
using (UnityWebRequest request = UnityWebRequest.Get(url))
{
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success)
{
onSuccess?.Invoke(request.downloadHandler.text);
}
else
{
onError?.Invoke($"Error: {request.error}, {request.downloadHandler.text}");
}
}
}
// POST请求示例(JSON数据)
public IEnumerator PostRequest(string url, string jsonData, System.Action<string> onSuccess,
System.Action<string> onError = null)
{
byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonData);
using (UnityWebRequest request = new UnityWebRequest(url, "POST"))
{
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success)
{
onSuccess?.Invoke(request.downloadHandler.text);
}
else
{
onError?.Invoke($"Error: {request.error}, {request.downloadHandler.text}");
}
}
}
}