cookies - Se corrigió la advertencia de HttpClient "Atributo de caducidad no válida" utilizando API fluido
apache-commons-httpclient (3)
Estoy usando la API de HttpClient para hacer una solicitud GET:
String jsonResult = Request.Get(requestUrl)
.connectTimeout(2000)
.socketTimeout(2000)
.execute().returnContent().asString();
Pero para cada solicitud recibo la siguiente advertencia:
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
¿Cómo puedo solucionar esto y seguir usando la interfaz fluida? Idealmente, me gustaría una forma adecuada de solucionarlo, pero como realmente no me importan las cookies en mi caso de uso, cualquier solución que solo me permita dejar de mostrar las advertencias (además de redireccionar stderr, porque lo necesito) es bienvenido .
Si desea utilizar HttpClientBuilder
, puede usar la siguiente sintaxis:
HttpClient httpClient = HttpClientBuilder.create()
.setDefaultRequestConfig(RequestConfig.custom()
.setCookieSpec(CookieSpecs.STANDARD).build()).build();
Resuelto con:
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.client.protocol.ResponseProcessCookies", "fatal");
El HttpClient predeterminado tiene dificultades para entender los últimos encabezados compatibles con RFC.
En lugar de ocultar la advertencia, simplemente cambie a una especificación de cookies estándar como esta (HttpClient 4.4+):
HttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(RequestConfig.custom()
.setCookieSpec(CookieSpecs.STANDARD).build())
.build();