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 2021/02/14 15:18:00 UTC
[camel] 01/03: camel-vertx-http - Optimize a bit
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 66074e238c5f8db15776a84d29322c0449da0bb3
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Feb 14 15:33:29 2021 +0100
camel-vertx-http - Optimize a bit
---
.../vertx/http/DefaultVertxHttpBinding.java | 27 ++++++++++++++--------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/components/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/DefaultVertxHttpBinding.java b/components/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/DefaultVertxHttpBinding.java
index 024e147..b78354b 100644
--- a/components/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/DefaultVertxHttpBinding.java
+++ b/components/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/DefaultVertxHttpBinding.java
@@ -31,6 +31,7 @@ import io.vertx.ext.web.client.HttpResponse;
import io.vertx.ext.web.client.WebClient;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.TypeConverter;
import org.apache.camel.http.base.HttpHelper;
import org.apache.camel.http.base.HttpOperationFailedException;
import org.apache.camel.spi.HeaderFilterStrategy;
@@ -81,9 +82,11 @@ public class DefaultVertxHttpBinding implements VertxHttpBinding {
}
// Configure query params
- Map<String, Object> queryParams = URISupport.parseQuery(queryString);
- for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
- request.addQueryParam(entry.getKey(), entry.getValue().toString());
+ if (ObjectHelper.isNotEmpty(queryString)) {
+ Map<String, Object> queryParams = URISupport.parseQuery(queryString);
+ for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
+ request.addQueryParam(entry.getKey(), entry.getValue().toString());
+ }
}
// Configure basic authentication
@@ -115,11 +118,15 @@ public class DefaultVertxHttpBinding implements VertxHttpBinding {
}
// Transfer exchange headers to the HTTP request while applying the filter strategy
- Message message = exchange.getMessage();
- for (Map.Entry<String, Object> entry : message.getHeaders().entrySet()) {
- String headerValue = message.getHeader(entry.getKey(), String.class);
- if (strategy != null && !strategy.applyFilterToCamelHeaders(entry.getKey(), headerValue, exchange)) {
- request.putHeader(entry.getKey(), headerValue);
+ if (strategy != null) {
+ final TypeConverter tc = exchange.getContext().getTypeConverter();
+ for (Map.Entry<String, Object> entry : exchange.getMessage().getHeaders().entrySet()) {
+ String key = entry.getKey();
+ Object headerValue = entry.getValue();
+ if (!strategy.applyFilterToCamelHeaders(key, headerValue, exchange)) {
+ String str = tc.convertTo(String.class, headerValue);
+ request.putHeader(key, str);
+ }
}
}
}
@@ -152,10 +159,12 @@ public class DefaultVertxHttpBinding implements VertxHttpBinding {
MultiMap headers = response.headers();
+ boolean found = false;
for (String headerName : headers.names()) {
String name = headerName;
String value = headers.get(headerName);
- if (name.equalsIgnoreCase("content-type")) {
+ if (!found && name.equalsIgnoreCase("content-type")) {
+ found = true;
name = Exchange.CONTENT_TYPE;
exchange.setProperty(Exchange.CHARSET_NAME, IOHelper.getCharsetNameFromContentType(value));
}