org.springframework.web.client.HttpClientErrorException:400错误的PUT请求

问题描述 投票:0回答:1

我一直在尝试使用restTemplate使用带有PUT动词的API。我有以下代码

 RestTemplate restTemplate = new RestTemplate();
 HttpHeaders headers = new HttpHeaders();
 headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
 HttpEntity<String> entity = new HttpEntity<String>(jsonString,headers);
 restTemplate.put(Url+"/'"+id,entity, String.class);

我的jsonString具有以下内容。

{ 
 "id":"asdfafaff-fsf3-4b1c-a7c4-13352252daa",
 "product":"MyProductName",
 "Organization":"my company name test",
 "Organizationid":"tert122Teq-rtq-q556trt-qtqtqt3-131rtqtqt",
 "ProductProperties":"Hc2",
 "Locations":{ 
   "results":[ 

    ]
 },
 "Status":"Gone",
 "DisabledByType":null,
 "roles":null,
 "Url":"wwww.google.com",
 "Key":"xxxxxxxxxx",
 "Secret":"xxxxxxxxxxx",
 "Hash":"yyhhytyutyutuet",
 "validity":null,
 "Type":"basic",
 "Reason":null,
 "Barcodes":{ 
  "results":[ 
     "tetetetetetete"
   ]
 },
 "RelatedBarcodes":{ 
  "results":[ 

  ]
},
 "CustomizedFields":{ 
   "results":[ 

  ]
}}

似乎一切正常,但我收到此错误

HttpClientErrorException: 400 Bad Request.
` at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:79)
at org.springframework.security.oauth2.client.http.OAuth2ErrorHandler.handleError(OAuth2ErrorHandler.java:172)
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:730)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:688)
at org.springframework.security.oauth2.client.OAuth2RestTemplate.doExecute(OAuth2RestTemplate.java:128)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:644)
at org.springframework.web.client.RestTemplate.put(RestTemplate.java:459)`

可能是什么问题?

java spring-boot resttemplate
1个回答
0
投票

当我们不知道您要使用的API时,无法指出确切的问题是什么。

HTTP状态400表示服务器由于语法无效而无法处理您发送的请求。这是非常通用的消息,其背后可能有无数的原因。

您必须自己弄清楚是什么导致了此响应。您可以通过查看收到的回复的正文来实现。由于尚未声明要使用的ResponseErrorHandler,因此已应用了默认值(DefaultResponseErrorHandler)。打开调试模式,并在方法public void handleError(ClientHttpResponse response)上设置一些断点。在那里,您应该能够从发生问题的响应中获取更多详细信息,并相应地解决您的请求。

© www.soinside.com 2019 - 2024. All rights reserved.