You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (Jira)" <ji...@apache.org> on 2019/12/25 08:33:00 UTC

[jira] [Resolved] (HTTPCLIENT-2040) Headers are not sent when following redirects

     [ https://issues.apache.org/jira/browse/HTTPCLIENT-2040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oleg Kalnichevski resolved HTTPCLIENT-2040.
-------------------------------------------
    Fix Version/s: 5.0 Beta7
       Resolution: Fixed

Merged to master.

Oleg

> Headers are not sent when following redirects
> ---------------------------------------------
>
>                 Key: HTTPCLIENT-2040
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2040
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient (classic)
>    Affects Versions: 5.0 Beta6
>            Reporter: Jeff Schnitzer
>            Priority: Major
>             Fix For: 5.0 Beta7
>
>
> It appears that headers are not sent when following redirects.
> RedirectExec.execute() contains this code:
> {code:java} 
>                     switch (statusCode) {
>                         case HttpStatus.SC_MOVED_PERMANENTLY:
>                         case HttpStatus.SC_MOVED_TEMPORARILY:
>                         case HttpStatus.SC_SEE_OTHER:
>                             if (!Methods.isSafe(request.getMethod())) {
>                                 final HttpGet httpGet = new HttpGet(redirectUri);
>                                 httpGet.setHeaders(originalRequest.getHeaders());
>                                 redirect = httpGet;
>                             } else {
>                                 redirect = null;
>                             }
>                     }
>                     if (redirect == null) {
>                         redirect = new BasicClassicHttpRequest(originalRequest.getMethod(), redirectUri);
>                         redirect.setEntity(originalRequest.getEntity());
>                     }
>  {code}
> If the method is not 'safe' and converted to a GET, headers get copied from the original request. Otherwise, the original headers are silently dropped.
> Desired behavior: Headers should always be copied from the original request. That was the behavior of HttpClient 4.x.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org