From f60467efc9d11804f6d38370c4b90fa39e2262df Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Thu, 29 Nov 2007 02:57:34 +0000 Subject: [PATCH] Custom HTTP headers patch from Dave Engberg Reviewed By: mcslee git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665380 13f79535-47bb-0310-9956-ffa450edef68 --- lib/java/src/transport/THttpClient.java | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/java/src/transport/THttpClient.java b/lib/java/src/transport/THttpClient.java index 8b42ba3d..ab3893db 100644 --- a/lib/java/src/transport/THttpClient.java +++ b/lib/java/src/transport/THttpClient.java @@ -12,6 +12,8 @@ import java.io.IOException; import java.net.URL; import java.net.HttpURLConnection; +import java.util.HashMap; +import java.util.Map; /** * HTTP implementation of the TTransport interface. Used for working with a @@ -32,6 +34,8 @@ public class THttpClient extends TTransport { private int readTimeout_ = 0; + private Map customHeaders_ = null; + public THttpClient(String url) throws TTransportException { try { url_ = new URL(url); @@ -48,6 +52,17 @@ public class THttpClient extends TTransport { readTimeout_ = timeout; } + public void setCustomHeaders(Map headers) { + customHeaders_ = headers; + } + + public void setCustomHeader(String key, String value) { + if (customHeaders_ == null) { + customHeaders_ = new HashMap(); + } + customHeaders_.put(key, value); + } + public void open() {} public void close() { @@ -86,7 +101,7 @@ public class THttpClient extends TTransport { public void flush() throws TTransportException { // Extract request and reset buffer - byte[] data = requestBuffer_.toByteArray(); + byte[] data = requestBuffer_.toByteArray(); requestBuffer_.reset(); try { @@ -106,6 +121,11 @@ public class THttpClient extends TTransport { connection.setRequestProperty("Content-Type", "application/x-thrift"); connection.setRequestProperty("Accept", "application/x-thrift"); connection.setRequestProperty("User-Agent", "Java/THttpClient"); + if (customHeaders_ != null) { + for (Map.Entry header : customHeaders_.entrySet()) { + connection.setRequestProperty(header.getKey(), header.getValue()); + } + } connection.setDoOutput(true); connection.connect(); connection.getOutputStream().write(data); @@ -120,6 +140,6 @@ public class THttpClient extends TTransport { } catch (IOException iox) { throw new TTransportException(iox); - } + } } } -- 2.17.1