簡體   English   中英

@RequestBody 和 @RequestParam 的 RestTemplate

[英]RestTemplate for @RequestBody and @RequestParam

我正在嘗試使用 RestTemplate 像這樣調用 POST api:

RequestorParam  test = new RequestorParam();
test.setScopeMcg("MCG");
test.setSituatedDealIds(situatedDealIds);

String url = "http://localhost:" + serverPort + "/retrieveAttributes";
ResponseEntity<SituatedDeals> response = restTemplate.postForEntity(url, test, SituatedDeals.class);

controller 的代碼是這樣的;

  @PostMapping(value = "/retrieveAttributes", produces = "application/json")
  @ResponseBody
  @Duration
  public SituatedDeals retrieveAttributes(
        @RequestParam String scopeMcg, 
        @RequestBody SituatedDealIds situatedDealIds 
    ) {
        log.info("success")
  }

我的要求很糟糕,有人可以幫忙嗎?

  1. 根據您的 controller 代碼,您實際上沒有返回任何類型的響應實體SituatedDeals ,只是將其記錄為成功。 這可能是null object 響應的原因。

  2. scopeMcg是一個請求參數,因此您應該以請求參數格式傳遞它,即http://localhost:8080/retrieveAttributes?scopeMcg=MCG參考: Spring 請求參數

  3. 您的test Object 是您的 post 請求的實際有效負載,其類型應為 SiteDealIds object。 參考: 實體的 Rest-Template 帖子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM