HttpClient4では自動リダイレクトされる
HttpClient4では、ステータスコード301や302がかえってきた場合、内部でオートリダイレクトし、クライアントがリダイレクトを意識する必要がないようになっている(HTTP POST/PUTしたときにかえってくる303は除くようだ)。
HttpComponents Client Tutorial:
HttpClient handles all types of redirects automatically, except those explicitly prohibited by the HTTP specification as requiring user intervention. See Other (status code 303) redirects on POST and PUT requests are converted to GET requests as required by the HTTP specification.
オートリダイレクトされた場合、オートリダイレクトされたことも、リダイレクト先のURLも知ることができない。
通常は問題ないのだが、これらを知りたい場合には、オートリダイレクトを無効にするしか方法は無いようだ。
オートリダイレクトを無効にするには、以下のようにHANDLE_REDIRECTSをfalseに設定すれば良い。
AbstractHttpClient#getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, false);
GETメソッドを実行して得られるHttpResponseのヘッダ”Location:”からリダイレクト先が取得できる。
HttpResponse#getFirstHeader("Location").getValue();
« NicoBrowser ver.0.3.0 設定画面追加 | トップページ | NicoBrowser ver.0.4.0 エコノミー動画スキップ »
この記事へのコメントは終了しました。
« NicoBrowser ver.0.3.0 設定画面追加 | トップページ | NicoBrowser ver.0.4.0 エコノミー動画スキップ »
コメント