Repository: cxf Updated Branches: refs/heads/3.0.x-fixes 5fffe1882 -> 5ba12e480
Avoiding setting a wildcard if AsyncConduit is used Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/5ba12e48 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/5ba12e48 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/5ba12e48 Branch: refs/heads/3.0.x-fixes Commit: 5ba12e480ef8e9e09b8e512f53fb0aa603d0ad66 Parents: 5fffe18 Author: Sergey Beryozkin <[email protected]> Authored: Wed Feb 11 13:15:43 2015 +0000 Committer: Sergey Beryozkin <[email protected]> Committed: Wed Feb 11 13:16:46 2015 +0000 ---------------------------------------------------------------------- .../java/org/apache/cxf/transport/http/Headers.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/5ba12e48/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java ---------------------------------------------------------------------- diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java index 83f31e1..5507f40 100644 --- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java +++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java @@ -68,6 +68,7 @@ public class Headers { public static final String HTTP_HEADERS_SETCOOKIE = "Set-Cookie"; public static final String HTTP_HEADERS_LINK = "Link"; public static final String EMPTY_REQUEST_PROPERTY = "org.apache.cxf.empty.request"; + private static final String USE_ASYNC_PROPERTY = "use.async.http.conduit"; private static final TimeZone TIME_ZONE_GMT = TimeZone.getTimeZone("GMT"); private static final Logger LOG = LogUtils.getL7dLogger(Headers.class); @@ -298,10 +299,13 @@ public class Headers { */ public void setProtocolHeadersInConnection(HttpURLConnection connection) throws IOException { boolean emptyRequest = PropertyUtils.isTrue(message.get(EMPTY_REQUEST_PROPERTY)); - // Apparently HttpUrlConnection sets a form Content-Type - // if no Content-Type is set even for empty requests - String ct = emptyRequest ? "*/*" : determineContentType(); - connection.setRequestProperty(HttpHeaderHelper.CONTENT_TYPE, ct); + // HttpUrlConnection sets a form Content-Type and completely loses custom Accept + // if HTTP proxies are used if no Content-Type is set for empty requests + boolean asyncConduitUsed = PropertyUtils.isTrue(message.get(USE_ASYNC_PROPERTY)); + if (!asyncConduitUsed || !emptyRequest) { + String ct = emptyRequest ? "*/*" : determineContentType(); + connection.setRequestProperty(HttpHeaderHelper.CONTENT_TYPE, ct); + } transferProtocolHeadersToURLConnection(connection); logProtocolHeaders(Level.FINE);
