Nick Trown created HTTPCLIENT-1641:
--------------------------------------
Summary: CircularRedirect due to rebuilding URI after decoding
path, etc.
Key: HTTPCLIENT-1641
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1641
Project: HttpComponents HttpClient
Issue Type: Bug
Components: HttpClient
Affects Versions: 4.3.5
Reporter: Nick Trown
Priority: Minor
When I use HttpClient for the following URL the DefaultRedirectStrategy fails
to build a redirected URI properly.
http://hotpads.com/apartments/Camelot-Apartments-(-Drexel-&-UPenn-)-Philadelphia-PA-19104--3phq8mahfzya3
The reason is that the redirect URL returned is:
/apartments/Camelot-Apartments-%28-Drexel-%26-UPenn-%29-Philadelphia-PA-19104--3phq8mahfzya3
** Note: the only difference is that the redirect URL has the parens encoded.
The DefaultDirectEncoder does get the redirect URL, and since it is not
absolute eventually calls URIUtils.resolve(). This then calls
normalizeSyntax() where the bug is.
In normalizeSyntax() the URI is reconstructed. However, it incorrectly uses
getPath(), getFragment(), etc. instead of the raw equivalents such as
getRawPath(), getRawFragment(), etc.
In this case, the getPath() returned is therefore:
apartments/Camelot-Apartments-(-Drexel-&-UPenn-)-Philadelphia-PA-19104--3phq8mahfzya3
Where the parens are back. The DefaultRedirectStrategy detects this as a
circular redirect.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]