You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/12/28 12:46:38 UTC
svn commit: r1426472 - in
/camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc:
DefaultAhcBinding.java helper/AhcHelper.java
Author: davsclaus
Date: Fri Dec 28 11:46:38 2012
New Revision: 1426472
URL: http://svn.apache.org/viewvc?rev=1426472&view=rev
Log:
CAMEL-5912: Aligned code in producer with camel-http/camel-http4 does.
Modified:
camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java
camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java
Modified: camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java?rev=1426472&r1=1426471&r2=1426472&view=diff
==============================================================================
--- camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java (original)
+++ camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/DefaultAhcBinding.java Fri Dec 28 11:46:38 2012
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
+import java.net.URI;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -61,7 +62,12 @@ public class DefaultAhcBinding implement
RequestBuilder builder = new RequestBuilder();
try {
+ // creating the url to use takes 2-steps
String url = AhcHelper.createURL(exchange, endpoint);
+ URI uri = AhcHelper.createURI(exchange, url, endpoint);
+ // get the url from the uri
+ url = uri.toASCIIString();
+
log.trace("Setting url {}", url);
builder.setUrl(url);
} catch (Exception e) {
Modified: camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java?rev=1426472&r1=1426471&r2=1426472&view=diff
==============================================================================
--- camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java (original)
+++ camel/trunk/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java Fri Dec 28 11:46:38 2012
@@ -164,4 +164,32 @@ public final class AhcHelper {
return uri;
}
+
+ /**
+ * Creates the URI to invoke.
+ *
+ * @param exchange the exchange
+ * @param url the url to invoke
+ * @param endpoint the endpoint
+ * @return the URI to invoke
+ */
+ public static URI createURI(Exchange exchange, String url, AhcEndpoint endpoint) throws URISyntaxException {
+ URI uri = new URI(url);
+ // is a query string provided in the endpoint URI or in a header (header overrules endpoint)
+ String queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+ if (queryString == null) {
+ queryString = endpoint.getHttpUri().getRawQuery();
+ }
+ // We should user the query string from the HTTP_URI header
+ if (queryString == null) {
+ queryString = uri.getQuery();
+ }
+ if (queryString != null) {
+ // need to encode query string
+ queryString = UnsafeUriCharactersEncoder.encode(queryString);
+ uri = URISupport.createURIWithQuery(uri, queryString);
+ }
+ return uri;
+ }
+
}