休息模板中具有 307 状态代码的空响应实体
Posted
技术标签:
【中文标题】休息模板中具有 307 状态代码的空响应实体【英文标题】:Null response entity with 307 status code in Rest Template 【发布时间】:2019-01-18 23:31:47 【问题描述】:我正在尝试使用 Spring RestTemplateBuilder
调用 REST Web 服务和 POST 数据。这是我的代码示例。
public HttpHeaders getHttpHeaders()
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Authorization", "Basic " + authToken);
requestHeaders.add("Content-Type", "application/json");
return requestHeaders;
public ResponseJson getData(RequestJson requestJson)
HttpEntity<RequestJson> entity = new HttpEntity<>(requestJson, getHttpHeaders());
ResponseEntity<ResponseJson> result = restTemplateBuilder.build().postForEntity(PostUrl, entity, ResponseJson.class);
当我调试它时,它会为 ResponseEntity 提供 status=307 和 body=null。但是当我直接使用请求正文调用 PostUrl 时,它会创建带有 201 状态代码的数据。
我可以知道如何找出这个 307 状态以及为什么我得到空响应吗?
【问题讨论】:
"所有现代浏览器都会自动检测 307 临时重定向响应代码并自动处理重定向到新 URI 的动作" 也许您还应该在代码中处理 307。 @Selindek 是的,但我不知道如何处理这个问题。我正在努力寻找解决方案。 【参考方案1】:这对我有用,使用 HttpComponentsClientHttpRequestFactory
https://lateralcoding.blogspot.com/2018/03/Spring-RestTemplate-AutoRedirect.html
【讨论】:
以上是关于休息模板中具有 307 状态代码的空响应实体的主要内容,如果未能解决你的问题,请参考以下文章