当前位置:   article > 正文

unity前后端通信 json解析 HTTP POST(BestHttp插件实现)_besthttp 发送json数据

besthttp 发送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. // 下面写了一种Json中数组嵌套数组的类的写法
  7. public class Resquest_Data
  8. {
  9. public int num_People;
  10. public People[] people;
  11. }
  12. public class People
  13. {
  14. public string name;
  15. public int num_Children;
  16. public Children[] children;
  17. }
  18. public class Children
  19. {
  20. public string name;
  21. }

注意问题:

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/123444
推荐阅读
相关标签
  

闽ICP备14008679号