【发布时间】: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 是的,但我不知道如何处理这个问题。我正在努力寻找解决方案。
标签: spring rest http spring-boot spring-rest