HttpClientの流れるようなAPIを使用してGETリクエストを作成しています。
String jsonResult = Request.Get(requestUrl)
.connectTimeout(2000)
.socketTimeout(2000)
.execute().returnContent().asString();
しかし、リクエストごとに次の警告が表示されます。
apr 07, 2016 12:26:46 PM org.Apache.http.client.protocol.ResponseProcessCookies processCookies
WARNING: Invalid cookie header: "Set-Cookie: WMF-Last-Access=07-Apr-2016;Path=/;HttpOnly;Expires=Mon, 09 May 2016 00:00:00 GMT". Invalid 'expires' attribute: Mon, 09 May 2016 00:00:00 GMT
これを修正して、流れるようなインターフェイスを使用し続けるにはどうすればよいですか?理想的にはそれを修正する適切な方法が必要ですが、ユースケースのCookieについてはあまり気にしないので、警告の表示を停止するだけのソリューション(stderrのリダイレクト以外に、それが必要です)は大歓迎です。
デフォルトのHttpClientでは、最新のRFC準拠ヘッダーを理解するのが困難です。
警告を非表示にする代わりに、次のような標準のCookie仕様に切り替えてください(HttpClient 4.4+):
HttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(RequestConfig.custom()
.setCookieSpec(CookieSpecs.STANDARD).build())
.build();
HttpClientBuilder
を使用する場合は、次の構文を使用できます。
HttpClient httpClient = HttpClientBuilder.create()
.setDefaultRequestConfig(RequestConfig.custom()
.setCookieSpec(CookieSpecs.STANDARD).build()).build();
で解決:
System.setProperty("org.Apache.commons.logging.simplelog.log.org.Apache.http.client.protocol.ResponseProcessCookies", "fatal");