Thanks, that was what I was looking for. However, a few things...
First, it seems the arguments have changed a bit since that was written.
I fixed this by creating a HttpContext with : HttpContext context =
HttpClientContext.create();
I then created a quick CallbackHandler for testing:
FutureCallback callback = new
FutureCallback() {
@Override
public void completed(MyHandler t) {
System.err.println("Here: completed");
}
@Override
public void failed(Exception excptn) {
System.err.println("Here: failed");
excptn.printStackTrace();
}
@Override
public void cancelled() {
System.err.println("cancelled");
}
};
Second, I get an error. I think the problem is in MinimalHttpAsyncClient on
line 229. It creates the HttpHost, but there is no opportunity to send in a
port. This results in:
at org.apache.hc.core5.util.Args.notNegative(Args.java:124)
at org.apache.hc.client5.http.HttpRoute.(HttpRoute.java:75)
at org.apache.hc.client5.http.HttpRoute.(HttpRoute.java:154)
at
org.apache.hc.client5.http.impl.async.MinimalHttpAsyncClient.leaseEndpoint(MinimalHttpAsyncClient.java:115)
at
org.apache.hc.client5.http.impl.async.MinimalHttpAsyncClient.access$200(MinimalHttpAsyncClient.java:76)
at
org.apache.hc.client5.http.impl.async.MinimalHttpAsyncClient$4.sendRequest(MinimalHttpAsyncClient.java:231)
at
org.apache.hc.core5.http.nio.BasicRequestProducer.sendRequest(BasicRequestProducer.java:65)
Thanks,
Mark Claassen
Senior Software Engineer
Donnell Systems, Inc.
130 South Main Street
Leighton Plaza Suite 375
South Bend, IN 46601
E-mail: mailto:mclaas...@ocie.net
Voice: (574)232-3784
Fax: (574)232-4014
Disclaimer:
The opinions provided herein do not necessarily state or reflect
those of Donnell Systems, Inc.(DSI). DSI makes no warranty for and
assumes no legal liability or responsibility for the posting.
-Original Message-
From: Oleg Kalnichevski
Sent: Thursday, April 5, 2018 2:45 AM
To: HttpClient User Discussion
Subject: Re: HttpClient 5
On Wed, 2018-04-04 at 21:01 +, Mark A. Claassen wrote:
> I am finally getting chance to start with HttpClient 5 and HTTP/2. I
> am currently using 4.4.
>
> I am first trying to do a relatively simple port, meaning that I am
> trying to keep as much of the existing code as I can. I already have
> an internal API that reads the entity objects from the
> CloseableHttpResponse, so I am trying to get something that looks as
> close to that as possible.
>
> Looking at the examples, I think I need to use the Async client for
> HTTP/2. I created a CloseableHttpAsyncClient which I can call execute
> on and get a SimpleHttpResponse. However, this object doesn't give me
> anything I can easily convert to an input stream, just things like
> getText() and getBytes(). Getting an input stream is pretty
> fundamental to my internal API, so not being able to get that is going
> to make my job quite a bit more difficult.
>
> If I use a different call to execute() and get a ResponseConsumer, it
> looks like I can do more stream like things, but seems like a lot for
> the little I want.
>
> I certainly still need to poor over the examples ore and try to figure
> all this out. However, a nudge in the right direction would be
> extremely appreciated.
>
> Thanks!
>
Hi Mark
Classic client APIs in HttpClient 5.0 will give you very similar, mostly
compatible APIs with HttpClient 4.x but no HTTP/2.
If you want to utilize HTTP/2 you should be using async APIs provided by
HttpClient 5.0. HttpAsyncClient is perfectly capable of streaming both request
and response data (in full-duplex if desired) but you would lose convenience of
InputStream/OutputStream APIs and would need to structure your application
logic in terms of callback methods reacting to various events during HTTP
message exchanges:
https://github.com/apache/httpcomponents-client/blob/master/httpclient5
/src/examples/org/apache/hc/client5/http/examples/AsyncClientHttpExchan
geStreaming.java
https://github.com/apache/httpcomponents-client/blob/master/httpclient5
/src/examples/org/apache/hc/client5/http/examples/AsyncClientFullDuplex
Exchange.java
Oleg
-
To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
For additional commands, e-mail: httpclient-users-h...@hc.apache.org