La fijación de HttpClient advertencia de «no Válido caduca atributo» uso de fluent API

Estoy usando la API fluida de HttpClient para hacer una petición GET:

String jsonResult = Request.Get(requestUrl)
            .connectTimeout(2000)
            .socketTimeout(2000)
            .execute().returnContent().asString();

Pero para cada solicitud me sale el siguiente aviso:

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 este problema y mantener el uso de la interfaz fluida? Idealmente me gustaría una manera adecuada para solucionarlo, pero ya no me importa mucho acerca de las cookies en mi caso de uso de cualquier solución que sólo me permite dejar de mostrar las advertencias (además de redirigir stderr, porque necesito que) es bienvenido.

OriginalEl autor The Coding Monk | 2016-04-07

3 Kommentare

  1. 61

    El valor predeterminado HttpClient tiene dificultad para entender las últimas compatible con RFC encabezados.

    Lugar de ocultar la advertencia, solo tienes que cambiar a una cookie estándar de especificaciones como este (HttpClient 4.4+):

        HttpClient httpClient = HttpClients.custom()
            .setDefaultRequestConfig(RequestConfig.custom()
                .setCookieSpec(CookieSpecs.STANDARD).build())
            .build();
    
    lo habéis clavado. Estoy usando springboot resttemplate y se requiere un paso adicional de ajuste de httpclient de HttpComponentsClientHttpRequestFactory objeto que se transmite luego a resttemplate
    Aquí está el informe de este comportamiento en HttpClient la jira con el desarrollador de lo que sugiere la misma cosa: issues.apache.org/jira/browse/HTTPCLIENT-1763

    OriginalEl autor rustyx

  2. 4

    Si quieres usar HttpClientBuilder puede utilizar el siguiente sytax:

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

    OriginalEl autor hnaderi

  3. 2

    Resuelto con:

    System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.client.protocol.ResponseProcessCookies", "fatal");
    
    Sólo tenga en cuenta que usted puede necesitar una sintaxis diferente dependiendo de la biblioteca de registro está en uso. Consulte stackoverflow.com/questions/5188118/… de alternativas.
    Para log4j2: Configurador.setLevel(«org.apache.http.cliente.protocolo.ResponseProcessCookies», De Nivel.FATAL);

    OriginalEl autor The Coding Monk

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea