【问题标题】:Null response entity with 307 status code in Rest Template休息模板中具有 307 状态代码的空响应实体
【发布时间】: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=307body=null。但是当我直接使用请求正文调用 PostUrl 时,它会创建带有 201 状态代码的数据。

我可以知道如何找出这个 307 状态以及为什么我得到空响应吗?

【问题讨论】:

  • "所有现代浏览器都会自动检测 307 临时重定向响应代码并自动处理重定向到新 URI 的动作" 也许您还应该在代码中处理 307。
  • @Selindek 是的,但我不知道如何处理这个问题。我正在努力寻找解决方案。

标签: spring rest http spring-boot spring-rest


【解决方案1】:

这对我有用,使用 HttpComponentsClientHttpRequestFactory https://lateralcoding.blogspot.com/2018/03/Spring-RestTemplate-AutoRedirect.html

【讨论】:

    猜你喜欢
    • 2018-03-14
    • 2021-06-24
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2016-07-22
    • 2023-03-04
    相关资源
    最近更新 更多