hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <j...@apache.org>
Subject [jira] [Reopened] (HTTPCLIENT-1195) URIBuilder-created query strings are double-escaped
Date Sat, 23 Jun 2012 11:57:42 GMT

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

Sebb reopened HTTPCLIENT-1195:
------------------------------


Not sure if this is the exact cause of the problem, but the JMeter Gump build has recently
started failing due to some unexpected URL handling in HC4 client trunk. 

The same tests work fine in Java and HC3.1 and with HC 4.2 GA.

One of the failing tests uses the URL:

URL=http://localhost:8081/test/somescript.jsp?title=mytitle1%3F&description=mydescription1%3F

The URL query actually generated by HC4 is

title=mytitle1?&description=mydescription1?

i.e. it looks as though the encoded parameters have been incorrectly decoded

A similar problem happens with POST requests.

There used to be a unit test for URIs (client.protocol.TestUriEscapes), but that was dropped
with the fixes for this issue - I'm not sure where URIs are supposed to be tested now.
                
> URIBuilder-created query strings are double-escaped
> ---------------------------------------------------
>
>                 Key: HTTPCLIENT-1195
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1195
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient
>    Affects Versions: 4.2 Final
>         Environment: java version "1.6.0_24"
> OpenJDK Runtime Environment (IcedTea6 1.11.1) (6b24-1.11.1-4ubuntu3)
> OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
>            Reporter: Chris K. Jester-Young
>             Fix For: 4.2.1
>
>
> When setting parameters in URIBuilder, the keys and values are double-escaped: once in
URIBuilder.build(), and again in URI.appendSchemeSpecificPart(). Example:
>     URIBuilder ub = new URIBuilder("http://www.google.com/");
>     ub.addParameter("foo=bar", "baz&qux");
>     ub.build();   // http://www.google.com/?foo%253Dbar=baz%2526qux
> In order to avoid this problem, URIBuilder.build() should use URI's one-argument constructor,
which does not try to do extra escaping.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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


Mime
View raw message