[prev in list] [next in list] [prev in thread] [next in thread]
List: httpcomponents-commits
Subject: svn commit: r1353445 - in /httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/
From: sebb () apache ! org
Date: 2012-06-25 9:53:08
Message-ID: 20120625095308.9ACA82388865 () eris ! apache ! org
[Download RAW message or body]
Author: sebb
Date: Mon Jun 25 09:53:07 2012
New Revision: 1353445
URL: http://svn.apache.org/viewvc?rev=1353445&view=rev
Log:
HTTPCLIENT-1195 - URIBuilder-created query strings are double-escaped
Move normalization from URIUtils to URIBuilder so encodedPath is not dropped
Modified:
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIBuilder.java
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/ \
java/org/apache/http/client/utils/URIBuilder.java?rev=1353445&r1=1353444&r2=1353445&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIBuilder.java \
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIBuilder.java \
Mon Jun 25 09:53:07 2012 @@ -115,9 +115,9 @@ public class URIBuilder {
}
}
if (this.encodedPath != null) {
- sb.append(this.encodedPath);
+ sb.append(normalizePath(this.encodedPath));
} else if (this.path != null) {
- sb.append(encodePath(this.path));
+ sb.append(encodePath(normalizePath(this.path)));
}
if (this.encodedQuery != null) {
sb.append("?").append(this.encodedQuery);
@@ -217,7 +217,7 @@ public class URIBuilder {
* Sets URI path. The value is expected to be unescaped and may contain non \
ASCII characters.
*/
public URIBuilder setPath(final String path) {
- this.path = path;
+ this.path = normalizePath(path);
this.encodedSchemeSpecificPart = null;
this.encodedPath = null;
return this;
@@ -326,4 +326,20 @@ public class URIBuilder {
return buildString();
}
+ private static String normalizePath(String path) {
+ if (path == null) {
+ return null;
+ }
+ int n = 0;
+ for (; n < path.length(); n++) {
+ if (path.charAt(n) != '/') {
+ break;
+ }
+ }
+ if (n > 1) {
+ path = path.substring(n - 1);
+ }
+ return path;
+ }
+
}
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/ \
java/org/apache/http/client/utils/URIUtils.java?rev=1353445&r1=1353444&r2=1353445&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java \
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java \
Mon Jun 25 09:53:07 2012 @@ -141,29 +141,12 @@ public class URIUtils {
uribuilder.setHost(null);
uribuilder.setPort(-1);
}
- uribuilder.setPath(normalizePath(uribuilder.getPath()));
if (dropFragment) {
uribuilder.setFragment(null);
}
return uribuilder.build();
}
- private static String normalizePath(String path) {
- if (path == null) {
- return null;
- }
- int n = 0;
- for (; n < path.length(); n++) {
- if (path.charAt(n) != '/') {
- break;
- }
- }
- if (n > 1) {
- path = path.substring(n - 1);
- }
- return path;
- }
-
/**
* A convenience method for
* {@link URIUtils#rewriteURI(URI, HttpHost, boolean)} that always keeps the
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic