我正在将一些数据发布到正在回答302 Moved Temporarily的服务器上.
我希望HttpClient遵循重定向并自动获取新位置,因为我认为这是HttpClient的默认行为.但是,我得到一个例外,而不是遵循重定向:(
这是相关的代码片段,任何想法都将受到赞赏:
HttpParams httpParams = new BasicHttpParams();
HttpClientParams.setRedirecting(httpParams, true);
SchemeRegistry schemeRegistry = registerFactories();
ClientConnectionManager clientConnectionManager = new ThreadSafeClientConnManager(httpParams, schemeRegistry);
HttpClient httpClient = new DefaultHttpClient(clientConnectionManager, httpParams)
HttpPost postRequest = new HttpPost(url);
postRequest.setHeader(HTTP.CONTENT_TYPE, contentType);
postRequest.setHeader(ACCEPT, contentType);
if (requestBodyString != null) {
postRequest.setEntity(new StringEntity(requestBodyString));
}
return httpClient.execute(postRequest, responseHandler);
Run Code Online (Sandbox Code Playgroud)
RTF*_*RTF 78
对于HttpClient 4.3:
HttpClient instance = HttpClientBuilder.create()
.setRedirectStrategy(new LaxRedirectStrategy()).build();
Run Code Online (Sandbox Code Playgroud)
对于HttpClient 4.2:
DefaultHttpClient client = new DefaultHttpClient();
client.setRedirectStrategy(new LaxRedirectStrategy());
Run Code Online (Sandbox Code Playgroud)
对于HttpClient <4.2:
DefaultHttpClient client = new DefaultHttpClient();
client.setRedirectStrategy(new DefaultRedirectStrategy() {
/** Redirectable methods. */
private String[] REDIRECT_METHODS = new String[] {
HttpGet.METHOD_NAME, HttpPost.METHOD_NAME, HttpHead.METHOD_NAME
};
@Override
protected boolean isRedirectable(String method) {
for (String m : REDIRECT_METHODS) {
if (m.equalsIgnoreCase(method)) {
return true;
}
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
ok2*_*k2c 38
HttpClient的默认行为符合HTTP规范的要求(RFC 2616)
10.3.3 302 Found ... If the 302 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.
您可以通过对DefaultRedirectStrategy进行子类化并覆盖其#isRedirected()方法来覆盖HttpClient的默认行为.
| 归档时间: |
|
| 查看次数: |
57754 次 |
| 最近记录: |