You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Ben Short <be...@benshort.co.uk> on 2012/03/06 10:21:55 UTC
Extending AbstractHttpClientConnection
Hi,
I need to perform http requests over a supplied InputStream and
OutputStream. I've had a look through the code and it seems like it
should be possible if I extend AbstractHttpClientConnection.
Does this sounds like a reasonable approach?
Ben
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: Extending AbstractHttpClientConnection
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Thu, 2012-03-15 at 11:44 +0000, Ben Short wrote:
> Could anyone point me on the right direction to use these code changes with
> the HttpClient rather than having to use the HttpCore?
>
> Ben
>
You will need a custom connection manager with a custom connection
operator.
Oleg
> On 6 March 2012 21:00, Ben Short <be...@benshort.co.uk> wrote:
>
> > Thanks Oleg.
> >
> > On 6 March 2012 15:28, Oleg Kalnichevski <ol...@apache.org> wrote:
> > > On Tue, Mar 06, 2012 at 01:20:19PM +0000, Ben Short wrote:
> > >> Hi,
> > >>
> > >> I have something working as shown below. The input and output streams
> > >> are managed outside of the doHttpRequest. Does this seam like a
> > >> reasonable solution?
> > >>
> > >> public class InputStreamSessionInputBuffer extends
> > AbstractSessionInputBuffer {
> > >>
> > >> public InputStreamSessionInputBuffer(final InputStream is, final
> > >> HttpParams params) {
> > >> super();
> > >> init(is, 1024, params);
> > >> }
> > >>
> > >> public boolean isDataAvailable(int timeout) throws IOException {
> > >> boolean result = hasBufferedData();
> > >> if (!result) {
> > >> fillBuffer();
> > >> result = hasBufferedData();
> > >> }
> > >> return result;
> > >> }
> > >> }
> > >>
> > >>
> > >> public class OutputStreamSessionInputBuffer extends
> > >> AbstractSessionOutputBuffer {
> > >>
> > >> public OutputStreamSessionInputBuffer(final OutputStream os, final
> > >> HttpParams params) {
> > >> super();
> > >> init(os, 1024, params);
> > >> }
> > >> }
> > >>
> > >> public class StreamHttpClientConnection extends
> > AbstractHttpClientConnection {
> > >>
> > >> private boolean open = false;
> > >> private InputStream is;
> > >> private OutputStream os;
> > >> private SessionInputBuffer inputBuffer;
> > >> private SessionOutputBuffer outputBuffer;
> > >>
> > >> public StreamHttpClientConnection() {
> > >> }
> > >>
> > >> public void init(InputStream is, OutputStream os, HttpParams
> > >> params) throws IOException {
> > >>
> > >> this.is = is;
> > >> this.os = os;
> > >>
> > >> this.inputBuffer = new InputStreamSessionInputBuffer(is,
> > params);
> > >> this.outputBuffer = new OutputStreamSessionInputBuffer(os,
> > params);
> > >>
> > >> init(this.inputBuffer, this.outputBuffer, params);
> > >>
> > >> this.open = true;
> > >> }
> > >>
> > >> @Override
> > >> protected void assertOpen() throws IllegalStateException {
> > >> if (!this.open) {
> > >> throw new IllegalStateException("Connection is not open");
> > >> }
> > >> }
> > >>
> > >> public void close() throws IOException {
> > >> if (!this.open) {
> > >> return;
> > >> }
> > >> this.open = false;
> > >>
> > >> this.os.flush();
> > >> }
> > >>
> > >> public boolean isOpen() {
> > >> return this.open;
> > >> }
> > >>
> > >> public void setSocketTimeout(int i) {
> > >> }
> > >>
> > >> public int getSocketTimeout() {
> > >> return -1;
> > >> }
> > >>
> > >> public void shutdown() throws IOException {
> > >> this.close();
> > >> }
> > >> }
> > >>
> > >>
> > >> public static void doHttpRequest(InputStream is, OutputStream os)
> > >> throws IOException, HttpException {
> > >>
> > >> HttpParams params = new SyncBasicHttpParams();
> > >> HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
> > >> HttpProtocolParams.setContentCharset(params, "UTF-8");
> > >> HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
> > >> HttpProtocolParams.setUseExpectContinue(params, true);
> > >>
> > >> HttpProcessor httpproc = new ImmutableHttpProcessor(new
> > >> HttpRequestInterceptor[] {
> > >> // Required protocol interceptors
> > >> new RequestContent(),
> > >> new RequestTargetHost(),
> > >> // Recommended protocol interceptors
> > >> new RequestConnControl(),
> > >> new RequestUserAgent(),
> > >> new RequestExpectContinue()});
> > >>
> > >> HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
> > >>
> > >> HttpContext context = new BasicHttpContext(null);
> > >> HttpHost host = new HttpHost("10.10.20.60", 4050);
> > >>
> > >> StreamHttpClientConnection conn = new
> > StreamHttpClientConnection();
> > >>
> > >> //DefaultHttpClientConnection conn = new
> > DefaultHttpClientConnection();
> > >> ConnectionReuseStrategy connStrategy = new
> > >> DefaultConnectionReuseStrategy();
> > >>
> > >> context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
> > >> context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
> > >>
> > >> conn.init(is, os, params);
> > >>
> > >> //conn.bind(new Socket(host.getHostName(), host.getPort()),
> > params);
> > >>
> > >> HttpRequest request = new BasicHttpRequest("GET",
> > >> "/messages?validity=active_only");
> > >>
> > >> httpexecutor.preProcess(request, httpproc, context);
> > >> HttpResponse response = httpexecutor.execute(request, conn,
> > context);
> > >> response.setParams(params);
> > >> httpexecutor.postProcess(response, httpproc, context);
> > >>
> > >> System.out.println("<< Response: " + response.getStatusLine());
> > >> System.out.println(EntityUtils.toString(response.getEntity()));
> > >>
> > >> conn.shutdown();
> > >> }
> > >>
> > >
> > > Looks all right to me.
> > >
> > > Cheers
> > >
> > > Oleg
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> > > For additional commands, e-mail: httpclient-users-help@hc.apache.org
> > >
> >
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: Extending AbstractHttpClientConnection
Posted by Ben Short <be...@benshort.co.uk>.
Could anyone point me on the right direction to use these code changes with
the HttpClient rather than having to use the HttpCore?
Ben
On 6 March 2012 21:00, Ben Short <be...@benshort.co.uk> wrote:
> Thanks Oleg.
>
> On 6 March 2012 15:28, Oleg Kalnichevski <ol...@apache.org> wrote:
> > On Tue, Mar 06, 2012 at 01:20:19PM +0000, Ben Short wrote:
> >> Hi,
> >>
> >> I have something working as shown below. The input and output streams
> >> are managed outside of the doHttpRequest. Does this seam like a
> >> reasonable solution?
> >>
> >> public class InputStreamSessionInputBuffer extends
> AbstractSessionInputBuffer {
> >>
> >> public InputStreamSessionInputBuffer(final InputStream is, final
> >> HttpParams params) {
> >> super();
> >> init(is, 1024, params);
> >> }
> >>
> >> public boolean isDataAvailable(int timeout) throws IOException {
> >> boolean result = hasBufferedData();
> >> if (!result) {
> >> fillBuffer();
> >> result = hasBufferedData();
> >> }
> >> return result;
> >> }
> >> }
> >>
> >>
> >> public class OutputStreamSessionInputBuffer extends
> >> AbstractSessionOutputBuffer {
> >>
> >> public OutputStreamSessionInputBuffer(final OutputStream os, final
> >> HttpParams params) {
> >> super();
> >> init(os, 1024, params);
> >> }
> >> }
> >>
> >> public class StreamHttpClientConnection extends
> AbstractHttpClientConnection {
> >>
> >> private boolean open = false;
> >> private InputStream is;
> >> private OutputStream os;
> >> private SessionInputBuffer inputBuffer;
> >> private SessionOutputBuffer outputBuffer;
> >>
> >> public StreamHttpClientConnection() {
> >> }
> >>
> >> public void init(InputStream is, OutputStream os, HttpParams
> >> params) throws IOException {
> >>
> >> this.is = is;
> >> this.os = os;
> >>
> >> this.inputBuffer = new InputStreamSessionInputBuffer(is,
> params);
> >> this.outputBuffer = new OutputStreamSessionInputBuffer(os,
> params);
> >>
> >> init(this.inputBuffer, this.outputBuffer, params);
> >>
> >> this.open = true;
> >> }
> >>
> >> @Override
> >> protected void assertOpen() throws IllegalStateException {
> >> if (!this.open) {
> >> throw new IllegalStateException("Connection is not open");
> >> }
> >> }
> >>
> >> public void close() throws IOException {
> >> if (!this.open) {
> >> return;
> >> }
> >> this.open = false;
> >>
> >> this.os.flush();
> >> }
> >>
> >> public boolean isOpen() {
> >> return this.open;
> >> }
> >>
> >> public void setSocketTimeout(int i) {
> >> }
> >>
> >> public int getSocketTimeout() {
> >> return -1;
> >> }
> >>
> >> public void shutdown() throws IOException {
> >> this.close();
> >> }
> >> }
> >>
> >>
> >> public static void doHttpRequest(InputStream is, OutputStream os)
> >> throws IOException, HttpException {
> >>
> >> HttpParams params = new SyncBasicHttpParams();
> >> HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
> >> HttpProtocolParams.setContentCharset(params, "UTF-8");
> >> HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
> >> HttpProtocolParams.setUseExpectContinue(params, true);
> >>
> >> HttpProcessor httpproc = new ImmutableHttpProcessor(new
> >> HttpRequestInterceptor[] {
> >> // Required protocol interceptors
> >> new RequestContent(),
> >> new RequestTargetHost(),
> >> // Recommended protocol interceptors
> >> new RequestConnControl(),
> >> new RequestUserAgent(),
> >> new RequestExpectContinue()});
> >>
> >> HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
> >>
> >> HttpContext context = new BasicHttpContext(null);
> >> HttpHost host = new HttpHost("10.10.20.60", 4050);
> >>
> >> StreamHttpClientConnection conn = new
> StreamHttpClientConnection();
> >>
> >> //DefaultHttpClientConnection conn = new
> DefaultHttpClientConnection();
> >> ConnectionReuseStrategy connStrategy = new
> >> DefaultConnectionReuseStrategy();
> >>
> >> context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
> >> context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
> >>
> >> conn.init(is, os, params);
> >>
> >> //conn.bind(new Socket(host.getHostName(), host.getPort()),
> params);
> >>
> >> HttpRequest request = new BasicHttpRequest("GET",
> >> "/messages?validity=active_only");
> >>
> >> httpexecutor.preProcess(request, httpproc, context);
> >> HttpResponse response = httpexecutor.execute(request, conn,
> context);
> >> response.setParams(params);
> >> httpexecutor.postProcess(response, httpproc, context);
> >>
> >> System.out.println("<< Response: " + response.getStatusLine());
> >> System.out.println(EntityUtils.toString(response.getEntity()));
> >>
> >> conn.shutdown();
> >> }
> >>
> >
> > Looks all right to me.
> >
> > Cheers
> >
> > Oleg
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> > For additional commands, e-mail: httpclient-users-help@hc.apache.org
> >
>
Re: Extending AbstractHttpClientConnection
Posted by Ben Short <be...@benshort.co.uk>.
Thanks Oleg.
On 6 March 2012 15:28, Oleg Kalnichevski <ol...@apache.org> wrote:
> On Tue, Mar 06, 2012 at 01:20:19PM +0000, Ben Short wrote:
>> Hi,
>>
>> I have something working as shown below. The input and output streams
>> are managed outside of the doHttpRequest. Does this seam like a
>> reasonable solution?
>>
>> public class InputStreamSessionInputBuffer extends AbstractSessionInputBuffer {
>>
>> public InputStreamSessionInputBuffer(final InputStream is, final
>> HttpParams params) {
>> super();
>> init(is, 1024, params);
>> }
>>
>> public boolean isDataAvailable(int timeout) throws IOException {
>> boolean result = hasBufferedData();
>> if (!result) {
>> fillBuffer();
>> result = hasBufferedData();
>> }
>> return result;
>> }
>> }
>>
>>
>> public class OutputStreamSessionInputBuffer extends
>> AbstractSessionOutputBuffer {
>>
>> public OutputStreamSessionInputBuffer(final OutputStream os, final
>> HttpParams params) {
>> super();
>> init(os, 1024, params);
>> }
>> }
>>
>> public class StreamHttpClientConnection extends AbstractHttpClientConnection {
>>
>> private boolean open = false;
>> private InputStream is;
>> private OutputStream os;
>> private SessionInputBuffer inputBuffer;
>> private SessionOutputBuffer outputBuffer;
>>
>> public StreamHttpClientConnection() {
>> }
>>
>> public void init(InputStream is, OutputStream os, HttpParams
>> params) throws IOException {
>>
>> this.is = is;
>> this.os = os;
>>
>> this.inputBuffer = new InputStreamSessionInputBuffer(is, params);
>> this.outputBuffer = new OutputStreamSessionInputBuffer(os, params);
>>
>> init(this.inputBuffer, this.outputBuffer, params);
>>
>> this.open = true;
>> }
>>
>> @Override
>> protected void assertOpen() throws IllegalStateException {
>> if (!this.open) {
>> throw new IllegalStateException("Connection is not open");
>> }
>> }
>>
>> public void close() throws IOException {
>> if (!this.open) {
>> return;
>> }
>> this.open = false;
>>
>> this.os.flush();
>> }
>>
>> public boolean isOpen() {
>> return this.open;
>> }
>>
>> public void setSocketTimeout(int i) {
>> }
>>
>> public int getSocketTimeout() {
>> return -1;
>> }
>>
>> public void shutdown() throws IOException {
>> this.close();
>> }
>> }
>>
>>
>> public static void doHttpRequest(InputStream is, OutputStream os)
>> throws IOException, HttpException {
>>
>> HttpParams params = new SyncBasicHttpParams();
>> HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
>> HttpProtocolParams.setContentCharset(params, "UTF-8");
>> HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
>> HttpProtocolParams.setUseExpectContinue(params, true);
>>
>> HttpProcessor httpproc = new ImmutableHttpProcessor(new
>> HttpRequestInterceptor[] {
>> // Required protocol interceptors
>> new RequestContent(),
>> new RequestTargetHost(),
>> // Recommended protocol interceptors
>> new RequestConnControl(),
>> new RequestUserAgent(),
>> new RequestExpectContinue()});
>>
>> HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
>>
>> HttpContext context = new BasicHttpContext(null);
>> HttpHost host = new HttpHost("10.10.20.60", 4050);
>>
>> StreamHttpClientConnection conn = new StreamHttpClientConnection();
>>
>> //DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
>> ConnectionReuseStrategy connStrategy = new
>> DefaultConnectionReuseStrategy();
>>
>> context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
>> context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
>>
>> conn.init(is, os, params);
>>
>> //conn.bind(new Socket(host.getHostName(), host.getPort()), params);
>>
>> HttpRequest request = new BasicHttpRequest("GET",
>> "/messages?validity=active_only");
>>
>> httpexecutor.preProcess(request, httpproc, context);
>> HttpResponse response = httpexecutor.execute(request, conn, context);
>> response.setParams(params);
>> httpexecutor.postProcess(response, httpproc, context);
>>
>> System.out.println("<< Response: " + response.getStatusLine());
>> System.out.println(EntityUtils.toString(response.getEntity()));
>>
>> conn.shutdown();
>> }
>>
>
> Looks all right to me.
>
> Cheers
>
> Oleg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: Extending AbstractHttpClientConnection
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Tue, Mar 06, 2012 at 01:20:19PM +0000, Ben Short wrote:
> Hi,
>
> I have something working as shown below. The input and output streams
> are managed outside of the doHttpRequest. Does this seam like a
> reasonable solution?
>
> public class InputStreamSessionInputBuffer extends AbstractSessionInputBuffer {
>
> public InputStreamSessionInputBuffer(final InputStream is, final
> HttpParams params) {
> super();
> init(is, 1024, params);
> }
>
> public boolean isDataAvailable(int timeout) throws IOException {
> boolean result = hasBufferedData();
> if (!result) {
> fillBuffer();
> result = hasBufferedData();
> }
> return result;
> }
> }
>
>
> public class OutputStreamSessionInputBuffer extends
> AbstractSessionOutputBuffer {
>
> public OutputStreamSessionInputBuffer(final OutputStream os, final
> HttpParams params) {
> super();
> init(os, 1024, params);
> }
> }
>
> public class StreamHttpClientConnection extends AbstractHttpClientConnection {
>
> private boolean open = false;
> private InputStream is;
> private OutputStream os;
> private SessionInputBuffer inputBuffer;
> private SessionOutputBuffer outputBuffer;
>
> public StreamHttpClientConnection() {
> }
>
> public void init(InputStream is, OutputStream os, HttpParams
> params) throws IOException {
>
> this.is = is;
> this.os = os;
>
> this.inputBuffer = new InputStreamSessionInputBuffer(is, params);
> this.outputBuffer = new OutputStreamSessionInputBuffer(os, params);
>
> init(this.inputBuffer, this.outputBuffer, params);
>
> this.open = true;
> }
>
> @Override
> protected void assertOpen() throws IllegalStateException {
> if (!this.open) {
> throw new IllegalStateException("Connection is not open");
> }
> }
>
> public void close() throws IOException {
> if (!this.open) {
> return;
> }
> this.open = false;
>
> this.os.flush();
> }
>
> public boolean isOpen() {
> return this.open;
> }
>
> public void setSocketTimeout(int i) {
> }
>
> public int getSocketTimeout() {
> return -1;
> }
>
> public void shutdown() throws IOException {
> this.close();
> }
> }
>
>
> public static void doHttpRequest(InputStream is, OutputStream os)
> throws IOException, HttpException {
>
> HttpParams params = new SyncBasicHttpParams();
> HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
> HttpProtocolParams.setContentCharset(params, "UTF-8");
> HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
> HttpProtocolParams.setUseExpectContinue(params, true);
>
> HttpProcessor httpproc = new ImmutableHttpProcessor(new
> HttpRequestInterceptor[] {
> // Required protocol interceptors
> new RequestContent(),
> new RequestTargetHost(),
> // Recommended protocol interceptors
> new RequestConnControl(),
> new RequestUserAgent(),
> new RequestExpectContinue()});
>
> HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
>
> HttpContext context = new BasicHttpContext(null);
> HttpHost host = new HttpHost("10.10.20.60", 4050);
>
> StreamHttpClientConnection conn = new StreamHttpClientConnection();
>
> //DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
> ConnectionReuseStrategy connStrategy = new
> DefaultConnectionReuseStrategy();
>
> context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
> context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
>
> conn.init(is, os, params);
>
> //conn.bind(new Socket(host.getHostName(), host.getPort()), params);
>
> HttpRequest request = new BasicHttpRequest("GET",
> "/messages?validity=active_only");
>
> httpexecutor.preProcess(request, httpproc, context);
> HttpResponse response = httpexecutor.execute(request, conn, context);
> response.setParams(params);
> httpexecutor.postProcess(response, httpproc, context);
>
> System.out.println("<< Response: " + response.getStatusLine());
> System.out.println(EntityUtils.toString(response.getEntity()));
>
> conn.shutdown();
> }
>
Looks all right to me.
Cheers
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org
Re: Extending AbstractHttpClientConnection
Posted by Ben Short <be...@benshort.co.uk>.
Hi,
I have something working as shown below. The input and output streams
are managed outside of the doHttpRequest. Does this seam like a
reasonable solution?
public class InputStreamSessionInputBuffer extends AbstractSessionInputBuffer {
public InputStreamSessionInputBuffer(final InputStream is, final
HttpParams params) {
super();
init(is, 1024, params);
}
public boolean isDataAvailable(int timeout) throws IOException {
boolean result = hasBufferedData();
if (!result) {
fillBuffer();
result = hasBufferedData();
}
return result;
}
}
public class OutputStreamSessionInputBuffer extends
AbstractSessionOutputBuffer {
public OutputStreamSessionInputBuffer(final OutputStream os, final
HttpParams params) {
super();
init(os, 1024, params);
}
}
public class StreamHttpClientConnection extends AbstractHttpClientConnection {
private boolean open = false;
private InputStream is;
private OutputStream os;
private SessionInputBuffer inputBuffer;
private SessionOutputBuffer outputBuffer;
public StreamHttpClientConnection() {
}
public void init(InputStream is, OutputStream os, HttpParams
params) throws IOException {
this.is = is;
this.os = os;
this.inputBuffer = new InputStreamSessionInputBuffer(is, params);
this.outputBuffer = new OutputStreamSessionInputBuffer(os, params);
init(this.inputBuffer, this.outputBuffer, params);
this.open = true;
}
@Override
protected void assertOpen() throws IllegalStateException {
if (!this.open) {
throw new IllegalStateException("Connection is not open");
}
}
public void close() throws IOException {
if (!this.open) {
return;
}
this.open = false;
this.os.flush();
}
public boolean isOpen() {
return this.open;
}
public void setSocketTimeout(int i) {
}
public int getSocketTimeout() {
return -1;
}
public void shutdown() throws IOException {
this.close();
}
}
public static void doHttpRequest(InputStream is, OutputStream os)
throws IOException, HttpException {
HttpParams params = new SyncBasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
HttpProtocolParams.setUseExpectContinue(params, true);
HttpProcessor httpproc = new ImmutableHttpProcessor(new
HttpRequestInterceptor[] {
// Required protocol interceptors
new RequestContent(),
new RequestTargetHost(),
// Recommended protocol interceptors
new RequestConnControl(),
new RequestUserAgent(),
new RequestExpectContinue()});
HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
HttpContext context = new BasicHttpContext(null);
HttpHost host = new HttpHost("10.10.20.60", 4050);
StreamHttpClientConnection conn = new StreamHttpClientConnection();
//DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
ConnectionReuseStrategy connStrategy = new
DefaultConnectionReuseStrategy();
context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
conn.init(is, os, params);
//conn.bind(new Socket(host.getHostName(), host.getPort()), params);
HttpRequest request = new BasicHttpRequest("GET",
"/messages?validity=active_only");
httpexecutor.preProcess(request, httpproc, context);
HttpResponse response = httpexecutor.execute(request, conn, context);
response.setParams(params);
httpexecutor.postProcess(response, httpproc, context);
System.out.println("<< Response: " + response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
conn.shutdown();
}
On 6 March 2012 09:21, Ben Short <be...@benshort.co.uk> wrote:
> Hi,
>
> I need to perform http requests over a supplied InputStream and
> OutputStream. I've had a look through the code and it seems like it
> should be possible if I extend AbstractHttpClientConnection.
>
> Does this sounds like a reasonable approach?
>
> Ben
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org