110 lines
4.6 KiB
C#
110 lines
4.6 KiB
C#
|
||
//using System.Collections;
|
||
//using System.Collections.Generic;
|
||
//using System.Text;
|
||
//using System.Threading.Tasks;
|
||
//using Unity.VisualScripting.Antlr3.Runtime;
|
||
//using UnityEngine;
|
||
//using UnityEngine.Networking;
|
||
|
||
|
||
|
||
|
||
//public class web : MonoBehaviour
|
||
//{
|
||
// public const string URL = "http://192.168.3.103:8089"; // 被注释掉的服务器地址(常量)
|
||
// //public const string URL = "ws://124.221.149.22:38445/safety/cloud"; // 被注释掉的服务器地址(常量)
|
||
|
||
// // 存储服务器返回的Cookie
|
||
// private static Dictionary<string, string> cookieJar = new Dictionary<string, string>();
|
||
|
||
// // 发送HTTP请求的方法,支持GET和POST等不同的请求方式
|
||
// public static async Task<string> SendRequest(string url, string method = "GET", string jsonData = "{}", Dictionary<string, string> head = null)
|
||
// {
|
||
// Debug.Log(url + "启动web"); // 调试输出,启动网络请求
|
||
// // 使用UnityWebRequest类进行HTTP请求,支持自定义请求方法
|
||
// using (UnityWebRequest request = new UnityWebRequest(url, method))
|
||
// {
|
||
// // 设置下载处理器,用于处理服务器响应的数据
|
||
// request.downloadHandler = new DownloadHandlerBuffer();
|
||
|
||
// // 如果是POST请求,设置请求体
|
||
// if (method == "POST" && jsonData != null)
|
||
// {
|
||
// // 将JSON字符串转换为字节数组
|
||
// byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonData);
|
||
// // 设置上传处理器,用于发送请求体数据
|
||
// request.uploadHandler = new UploadHandlerRaw(bodyRaw);
|
||
// // 设置请求头,指定请求体内容类型为JSON
|
||
// request.SetRequestHeader("Content-Type", "application/json");
|
||
// }
|
||
|
||
// // 如果请求头部存在,添加请求头部信息
|
||
// if (head != null)
|
||
// foreach (string key in head.Keys)
|
||
// {
|
||
// // 遍历传入的头部字典,逐项设置请求头部
|
||
// request.SetRequestHeader(key, head[key]);
|
||
// }
|
||
|
||
// // 设置已存储的 Cookie
|
||
// if (cookieJar.Count > 0)
|
||
// {
|
||
// // 用于存储多个cookie值的字符串
|
||
// string cookieHeader = "";
|
||
// foreach (var cookie in cookieJar)
|
||
// {
|
||
// // 格式化每个cookie为“键=值”的形式,并附加到字符串中,以分号分隔
|
||
// cookieHeader += $"{cookie.Key}={cookie.Value}; ";
|
||
// }
|
||
// // 设置请求头中的Cookie字段
|
||
// request.SetRequestHeader("Cookie", cookieHeader);
|
||
// }
|
||
|
||
// // 发送请求并等待响应
|
||
// var operation = request.SendWebRequest();
|
||
// while (!operation.isDone)
|
||
// await Task.Yield(); // 等待请求完成,使用await以非阻塞的方式处理
|
||
|
||
// // 检查是否存在网络错误或协议错误
|
||
// if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
|
||
// {
|
||
// // 如果有错误,输出错误信息并返回null
|
||
// Debug.LogError($"Error: {request.error}" + url);
|
||
// // 可以自定义弹窗提示用户错误信息,代码被注释掉了
|
||
// // Promptmgr.Instance.PromptBubble(request.error, Color.black,Color.red);
|
||
// return null;
|
||
// }
|
||
// else
|
||
// {
|
||
// // 处理返回的Cookie
|
||
// string setCookieHeader;
|
||
// string str = request.downloadHandler.text; // 获取服务器返回的文本内容
|
||
// //Debug.Log(str); // 输出返回内容到控制台
|
||
|
||
// // 尝试获取响应头中的“Set-Cookie”字段
|
||
// if (request.GetResponseHeaders().TryGetValue("Set-Cookie", out setCookieHeader))
|
||
// {
|
||
// // 将“Set-Cookie”字段的内容按分号分隔为多个部分
|
||
// string[] cookies = setCookieHeader.Split(';');
|
||
// foreach (var cookie in cookies)
|
||
// {
|
||
// // 将每个cookie分为“键=值”的形式
|
||
// var cookieParts = cookie.Split('=');
|
||
// if (cookieParts.Length == 2)
|
||
// {
|
||
// string key = cookieParts[0].Trim(); // 去掉键的空格
|
||
// string value = cookieParts[1].Trim(); // 去掉值的空格
|
||
// // 存储到cookieJar中,以备后续请求使用
|
||
// cookieJar[key] = value;
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
// // 返回响应内容(文本形式)
|
||
// return request.downloadHandler.text;
|
||
// }
|
||
// }
|
||
// }
|
||
//}
|