問題点

以下のような警告がログに記録されます。

*WARN* [10.89.13.88 [1486623761832] GET /content/abc/en/search.html HTTP/1.1] org.apache.commons.httpclient.HttpMethodBase Going to buffer response body of large or unknown size.Using getResponseBodyAsStream instead is recommended

環境

Apache Commons HttpClient 3.x を使用したカスタムアプリケーションコード。

原因

これは、commons-httpclient 3.x API で getResponseBody() または getResponseBodyAsString() メソッドが使用されているときに発生します。この警告は、応答本文が潜在的に非常に大きくなる可能性があることを意味します(大量の応答を返す検索など)。  この状況が発生したとき、応答全体が一度にメモリに読み込まれますが、これは非効率的です。

解決策

すべての応答を大きな String に読み取るのではなく、代わりに getResponseBodyAsStream() を使用して、InputStream から読み取るようにアプリケーションコードを変更します。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー