4

ドキュメント (以下にコピー) は、IOException と HttpException がそのコンテキストで何を意味するかについて多くを述べていません。

私の質問は: IOException が HttpClient.execute(HttpMethod) メソッドで発生した後、メソッドを再度実行するために、オブジェクトを破棄して新しい HttpClient を作成する必要がありますか? それとも、これらの例外のいくつかが発生した後でもメソッドを実行するために (HttpClient オブジェクト) を使用できますか?

executeMethod

public int executeMethod(HttpMethod メソッド)
                  IOException をスローし、
                         HttpException
指定された HTTP メソッドを実行します。
パラメーター:
method - 実行する HTTP メソッド。
戻り値:
メソッドの応答コード
スロー:
IOException - I/O (トランスポート) エラーが発生した場合。一部のトランスポート例外は回復できます。
HttpException - プロトコル例外が発生した場合。通常、プロトコル例外は回復できません。
4

1 に答える 1

4

HttpClientオブジェクトは何度でも再利用できます。私はバージョン 3.0 で作業していますが、これが最近のバージョンで変更されたかどうかについてはわかりません。

例外に関しては、コメントはHttpMethod顧客よりも顧客に向けられています。

「一部のトランスポート例外は回復可能」とは、リクエストを再送信して有効なレスポンスを取得できる可能性があることを意味します。 IOExceptionsリクエストを送信できない、またはサーバーからのレスポンスを受信できない場合に発生する傾向があります (たとえば、サーバーがダウンしている、または受信しているすべてのリクエストを処理できない場合など)。

「通常、プロトコル例外を回復することはできません」とは、HTTP リクエストを送信しているサーバーが HTTP プロトコルを満たす応答を送信していないことを意味します。通常、リクエストを再送信しても異なる結果は得られません。

この回答はおそらく少し遅れて役に立たないことを認識していますが、将来の読者はまだ恩恵を受ける可能性があります.

これは、HttpClient を使用した例外処理に関する便利なガイドです (とにかくレガシー バージョン)。移動する可能性があるため、ページを見つけるための便利な検索を次に示します。

于 2011-05-10T14:37:24.160 に答える