私は、Spring で RESTful 呼び出しを処理するために HttpClient 4.1.x を利用するアプリケーション システムを掘り下げてきました。
httpclient を直接処理する場合と、RestTemplate のトランスポートとして使用する場合の両方で、これはうまく機能していますが、実行でカバーされているかどうかわからない何かが必要であることがわかりました。
「BasicResponseHandler」はコンテンツ応答を文字列として扱い、サーバーからの応答が 300 未満の場合にそれを返します。私が使用している RESTful システムは、エラー応答の一部として XML ドキュメントを提供します (ステータス コード >= 400 )。この XML 応答には、クライアント開発者に役立つ情報が含まれています。
ResponseHandler インターフェースを介してこれを扱った経験があるかどうかを知りたいです。基本的に、BasicResponseHandler は、ステータス >= 300 がある場合に ClientProtocolException を投げます。処理する AbstractHttpClient 実装は、その例外をトラップし、エンティティを黙って消費してから、投げられた IOException (ClientProtocolException) を再投げます。
追加情報を含めるために ClientProtocolException のサブクラスを作成することをお勧めしますか?
エラー ステータスの場合は、既存のドキュメントをそれぞれのタイプにアンマーシャリングし (利用可能な場合)、それをスローして、応答の内容を保持します。
または、このケースを処理するために欠落している別のメカニズムはありますか?