我已将Jersey客户端配置为自动遵循HTTP 302重定向:
DefaultApacheHttpClientConfig config = new DefaultApacheHttpClientConfig();
config.getProperties().put(ClientConfig.PROPERTY_FOLLOW_REDIRECTS, true);
Client client = ApacheHttpClient.create(config);
当我收到HTTP 302的HTTP GET请求时,这非常正常:客户端自动重定向我,我从客户端获得的最后一个响应是HTTP 202。
但是,当提交导致HTTP 302的HTTP POST请求时,客户端不会自动重定向我。即,客户端的最后一个响应是HTTP 302,我需要手动跟踪重定向。这种行为对我来说似乎是违反直觉的,因为Web浏览器会自动处理此类重定向。用例似乎也很常见,例如,当尝试使用HTTP POST登录时,您经常会被重定向到新页面。
为什么会这样?有没有办法自动处理它,就像Web浏览器一样?