1. 配置请求体中的Json字符串

1
2
3
4
request_data = new RequestBodyClass();
request_data.a = "Json第一个字段";
request_data.b = "Json第二个字段";
string body = JsonUtility.ToJson(request_data);

2. 实例化HTTPRequest

请求头方法设置为POST,并且设置请求头中类型为json,请求类型有误可能会导致后端报错;使用RawData配置请求体内容。

1
2
3
4
5
6
// BestHttp插件, 首先实例化一个HTTPRequest, 设置为Post形式, 并配置回调函数RequestHandle
request = new HTTPRequest(new Uri("http://localhost:8080/queryTest"),
HTTPMethods.Post, RequestHandle);
request.RawData = Encoding.UTF8.GetBytes(body);
request.SetHeader("Content-Type", "application/json");
request.Send();

3. 配置回调函数RequestHandle

其中response的Data字段为响应体字节流,使用JsonConvert进行解包,注意类中的字段和Json中字段名要完全相同,Json中的数组在类中也对应为数组,二维数组则继续套娃。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void RequestHandle(HTTPRequest originalrequest, HTTPResponse response)
{
string resStr = Encoding.UTF8.GetString(response.Data);
Request_Data res = JsonConvert.DeserializeObject<Request_Data>(resStr);
}
// 下面写了一种Json中数组嵌套数组的类的写法
public class Resquest_Data
{
public int num_People;
public People[] people;
}
public class People
{
public string name;
public int num_Children;
public Children[] children;
}
public class Children
{
public string name;
}

4. 注意问题:

1.请求头里的类型要配置对,否则后端可能不能返回值

2.如果Http请求选择保持连接,TCP连接也会在9次请求后自动断开,之后会有报错,注意再次建立连接或者每次请求都重新创建链接。