0

この質問は、CommonsHttpClientからHttpComponentsClientへの移行(HttpClient3からHttpClient4への移行)に関連しています。

ブラウザで物理的にリンクにアクセスできますが、HttpClient 4.1.13を使用して同じリンクにアクセスしようとすると、HTTPエラー301( "Move Permanent")が発生します。

HttpClient 3.1を使用して同じリンクにアクセスすると、HTTPエラー301が発生しません。

何がそのような異常を引き起こしている可能性がありますか?そのように動作させるのは、HC 4で欠落している設定でしょうか?

4

3 に答える 3

2

これは、オリジンサーバーが異なるUser-Agentヘッダーを持つリクエストに対して異なる応答をするために発生する可能性があります。

于 2012-05-06T12:31:52.487 に答える
1

まず、301は「エラー」ではありません。3xx応答は、「リダイレクト」応答です。4xxと5xxはエラーシリーズです。

質問への回答として、RFC 2616に従い、要求メソッドがGETまたはHEADでない場合、ユーザーエージェントはリダイレクトを自動的に処理しない場合があります。あなたはPOSTをしていると思います。HttpClient 4は、以前のバージョンよりもHTTP仕様への準拠がより厳密であり、この点で確実に仕様に準拠しているため、この問題が発生している可能性があります。

于 2012-05-06T04:01:46.490 に答える
0

HC 4.x HttpClientサービスを使用している場合は、リダイレクトを自動的に処理する必要があります。少なくとも、それはドキュメントが言っていることです。(いくつかの構成プロパティがあることに注意してください。ただし、ドキュメントには、自動リダイレクト処理がデフォルトで有効になっていると記載されています。)

于 2012-05-06T01:23:13.093 に答える