Fluent API を使用して HttpClient の警告「無効な有効期限属性」を修正する 質問する

Fluent API を使用して HttpClient の警告「無効な有効期限属性」を修正する 質問する

HttpClient の Fluent 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

これを修正して、Fluent インターフェースを使い続けるにはどうしたらよいでしょうか。理想的には、適切な方法で修正したいのですが、私の使用例では Cookie についてはあまり気にしていないので、警告の表示を停止できるソリューション (stderr のリダイレクトは必要ですが) であれば何でも歓迎します。

ベストアンサー1

デフォルトの HttpClient では、最新の RFC 準拠ヘッダーを理解するのが困難です。

警告を非表示にする代わりに、次のような標準の Cookie 仕様に切り替えます (HttpClient 4.4 以降)。

HttpClient httpClient = HttpClients.custom()
    .setDefaultRequestConfig(RequestConfig.custom()
        .setCookieSpec(CookieSpecs.STANDARD)
        .build())
    .build();

おすすめ記事