ApacheのHttpClient 4でPOSTメソッドでも自動的にリダイレクトする方法メモ
HttpClient 4ってPOSTリクエストの時に相手のサーバが302を返してきても自動的にリダイレクトしてくれないんです。
自分でリダイレクトするしかないかなーって思ってたところにいい方法を見つけたのでメモします。
DefaultHttpClient client = new DefaultHttpClient(); client.setRedirectStrategy(new DefaultRedirectStrategy() { @Override public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) throws ProtocolException { boolean isRedirected = super.isRedirected(request, response, context); if (!isRedirected) { int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 301 || statusCode == 302) { return true; } } return isRedirected; } });
HttpClientのインスタンスにRedirectStrategyを追加するだけっていう簡単なお仕事です。