量産メモ帳

忘れっぽいのでメモを残しています。

HttpClient#execute メソッドを呼び出したら"302 Moved Temporarily"が返ってきた時の対処方法。

スポンサーリンク

Stack Overflow に解答が載っていました。


DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.setRedirectStrategy(new DefaultRedirectStrategy() {
public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) {
boolean isRedirect=false;
try {
isRedirect = super.isRedirected(request, response, context);
} catch (ProtocolException e) {
e.printStackTrace();
}
if (!isRedirect) {
int responseCode = response.getStatusLine().getStatusCode();
if (responseCode == 301 || responseCode == 302) {
return true;
}
}
return isRedirect;
}
});



リダイレクトのストラテジーを設定して、内部でレスポンスのステータスコードを見て判別すれば良いんですね、なるほど。


関連資料: