今天在用android-async-http的框架时,发现在调用某个连接的时候,老是抛出org.apache.http.client.CircularRedirectException异常
,进一步引发org.apache.http.client.ClientProtocolException异常,google查了下,发现是连接重定向导致的问题,所以就设置了:
// 设置是否可以重定向
HttpClientParams.setRedirecting(mHttpParams, true);
(好像http请求时,默认就是可以重定向的,不确定)
最后发现第一次重定向可以,第二次在重定向到相同的连接就要报上述的错误,然后有google了一把,发现有个
/**
* Defines whether circular redirects (redirects to the same location) should be allowed.
* The HTTP spec is not sufficiently clear whether circular redirects are permitted,
* therefore optionally they can be enabled
* <p>
* This parameter expects a value of type {@link Boolean}.
* </p>
*/
public static final String ALLOW_CIRCULAR_REDIRECTS = "http.protocol.allow-circular-redirects";
发现了这个,所以进行了以下设置
httpClient.getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
ok,问题解决...
http://stackoverflow.com/questions/6698214/avoid-circular-redirect-using-httpclient-4-1-1