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次请求后自动断开,之后会有报错,注意再次建立连接或者每次请求都重新创建链接。

posted @ 2023-07-04 11:58  imXuan  阅读(104)  评论(0编辑  收藏  举报