unity http json前后端通信
1. 配置请求体中的Json字符串
1 request_data = new RequestBodyClass(); 2 request_data.a = "Json第一个字段"; 3 request_data.b = "Json第二个字段"; 4 string body = JsonUtility.ToJson(request_data);
2. 实例化HTTPRequest
请求头方法设置为POST,并且设置请求头中类型为json,请求类型有误可能会导致后端报错;使用RawData配置请求体内容。
1 // BestHttp插件, 首先实例化一个HTTPRequest, 设置为Post形式, 并配置回调函数RequestHandle 2 request = new HTTPRequest(new Uri("http://localhost:8080/queryTest"), 3 HTTPMethods.Post, RequestHandle); 4 request.RawData = Encoding.UTF8.GetBytes(body); 5 request.SetHeader("Content-Type", "application/json"); 6 request.Send();
3. 配置回调函数RequestHandle
其中response的Data字段为响应体字节流,使用JsonConvert进行解包,注意类中的字段和Json中字段名要完全相同,Json中的数组在类中也对应为数组,二维数组则继续套娃。
1 private void RequestHandle(HTTPRequest originalrequest, HTTPResponse response) 2 { 3 string resStr = Encoding.UTF8.GetString(response.Data); 4 Request_Data res = JsonConvert.DeserializeObject<Request_Data>(resStr); 5 } 6 7 // 下面写了一种Json中数组嵌套数组的类的写法 8 public class Resquest_Data 9 { 10 public int num_People; 11 public People[] people; 12 } 13 14 public class People 15 { 16 public string name; 17 public int num_Children; 18 public Children[] children; 19 } 20 21 public class Children 22 { 23 public string name; 24 }
4. 注意问题:
1.请求头里的类型要配置对,否则后端可能不能返回值
2.如果Http请求选择保持连接,TCP连接也会在9次请求后自动断开,之后会有报错,注意再次建立连接或者每次请求都重新创建链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话