在 302 重定向响应后保留 POST 方法

Keep POST method after a 302 redirect response

提问人:Rems 提问时间:9/11/2023 更新时间:9/11/2023 访问量:58

问:

我正在构建一个 Junit 测试,其中我必须对 Spring 应用程序执行 HTTP Post。此应用受 CAS 保护,因此对此应用的每个请求都会重定向到 CAS,CAS 允许或不允许该请求。如果是这样,则发送 302 响应。 我将代码配置为遵循重定向:

 CloseableHttpClient httpClient = HttpClientBuilder.create()
                    .setRedirectStrategy(new LaxRedirectStrategy())
                    .build();
            final HttpPost httpPost = new HttpPost(path);

httpPost.setHeader("Content-Type", "application/***+xml");
httpPost.setHeader("Authorization", "Basic ***");
httpPost.setEntity(new StringEntity(myObject.toString()));
CloseableHttpResponse response = httpClient.execute(httpPost);

问题是 POST 请求在重定向时会变成 GET,这不是我想要的。有没有办法避免这种情况? 顺便说一句,当我使用 Postman 执行请求时,它工作正常,重定向后 POST 仍然是 POST

java 重定向 发布 apache-httpclient-4.x http-status-code-302

评论

1赞 Diego Borba 9/12/2023
这回答了你的问题吗?Apache HttpClient 4.5 将 POST 请求重定向到 GET 请求

答: 暂无答案