@requestbody返回创建身体后的null

发布于 2025-01-18 23:37:45 字数 1187 浏览 2 评论 0原文

我已经用gson创建了requestbody,并添加到post请求,但是在API(url)的Controller中,所有attrs return return null。

  • 添加到requestbody

      mediatype json = mediaType.parse(“应用程序/json; charset = utf-8”);
    gson gson = new gson();
    
    jsonObject jsonObject = new jsonobject();
    jsonobject.put(“ datafromappchinh”,“ demo thoi”);
    jsonobject.put(“路径”,路径);
    字符串身体= gson.tojson(jsonobject);
    请求Bodure requestBody = requestBody.Create(Body,JSON);
    请求= new request.builder()。url(“ http://” + path +“/api/startApp”)。
     
  • 控制器

      @RestController
      @requestmapping(“/api”)
      公共类聊天机器人{
      @postmapping(value =“/startApp”)
          @Responsebody
          公共对象开始(@requestbody()chatbotresponse item){
              尝试 {
                  item.SetResponselist(startApp(item.getPath()));
                  返回项目;
              } catch(Exception ex){
                  log.error(ex);
                  返回ex.getMessage();
              }
          }
      }
     
  • 我的chatbotresponse pojo:

      @data
      公共类ChatBotResponse 
      {
          私有字符串数据fromappchinh;
          私人字符串响应师;
          私人字符串路径;
      }
     

i have created RequestBody with Gson and add to Post request, but in the controller of api (url), all attrs return null.

  • Add to RequestBody:

    MediaType JSON = MediaType.parse("application/json; charset=utf-8");
    Gson gson = new Gson();
    
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("dataFromAppChinh", "demo thoi");
    jsonObject.put("path", path);
    String body = gson.toJson(jsonObject);
    RequestBody requestBody = RequestBody.create(body, JSON);
    Request request = new Request.Builder().url("http://" + path + "/api/startapp").post(requestBody).build();
    
  • Controller

      @RestController
      @RequestMapping("/api")
      public class ChatBot {
      @PostMapping(value = "/startapp")
          @ResponseBody
          public Object start(@RequestBody() ChatBotResponse item) {
              try {
                  item.setResponseList(startApp(item.getPath()));
                  return item;
              } catch (Exception ex) {
                  log.error(ex);
                  return ex.getMessage();
              }
          }
      }
    
  • My ChatBotResponse POJO:

      @Data
      public class ChatBotResponse 
      {
          private String dataFromAppChinh;
          private String responseList;
          private String path;
      }
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不一样的天空 2025-01-25 23:37:47

我发现问题是 gson.toJson(jsonObject) 在我的 Json String 之前插入 map 字符串。
我更改为 jsonObject.toString() 并成功了。

i found problem is gson.toJson(jsonObject) insert map string before my Json String.
I changed to jsonObject.toString() and it worked.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文