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

Java org.springframework.web.client.HttpClientErrorException:400 PUT请求错误,java,spring-boot,resttemplate,Java,Spring Boot,Resttemplate,我一直在尝试使用restTemplate使用PUT动词制作一个API。我有以下代码 RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON_UTF8); HttpEntity<String> entity = new HttpEntity<String

我一直在尝试使用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);
一切似乎都正常,但我收到了这个错误

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)`

可能是什么问题?

当我们不知道您试图使用的API时,不可能指出确切的问题是什么

HTTP状态
400
表示由于语法无效,服务器无法处理您发送的请求。这是一个非常普遍的信息,背后可能有无数的原因


你必须自己弄清楚到底是什么导致了这种反应。您可以通过查看收到的响应的主体来实现它。由于您尚未声明要使用的
ResponseErrorHandler
,因此已应用默认的(
DefaultResponseErrorHandler
)。打开调试模式,并在方法
public void handleError(ClientHttpResponse response)
上放置一些断点。在那里,您应该能够从响应中获得更多关于出错原因的详细信息,并相应地修复您的请求。

最有可能的原因是您正在构建的URL中有一个无关的“
撇号:
URL+“/”+id
@Andreas URL很好。当我打印它的时候,它显示了我想要使用的urI。真的吗?URL
http://example.com/foo/“asdfafaff-fsf3-4b1c-a7c4-1335252DAA是否正确?”?带着那悬挂的
?如果这是真的,那就是一个奇怪的API。@Andreas我已经删除了它,但我仍然有相同的问题OAuth2错误与身份验证有关。也许您缺少身份验证头?即使我将其置于带有断点的调试模式,我仍然会收到错误的请求错误。我做了一个相同的调用,但是使用了不同的json,并且调用了我程序中某个地方的其他端点,它可以正常工作。我真的很困惑为什么这不起作用。你提取了反应的身体吗?你的问题应该有答案,一些关于出错原因的详细信息。
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)`