Peter Soles wrote:
Thanks for the response. I am using 4.0.1 of HttpCore.
I looked a little more into it and found that the number of requests and
responses is dependent on the server I am contacting. For example, I
tried pointing the code to the gmail login page and got many more than
100 request/response pairs.
To run this code you just need a certificate for the client. In
Tester.java, just point the HttpClientNIO object to your certificate
file, SSL server, and port. For example, to contact gmail:
HttpClientNIO httpClient = new HttpClientNIO(true,"my certificate",
"gmail.com <http://gmail.com>",443);
try {
httpClient.start();
} catch (IOReactorException e) {
e.printStackTrace();
}
// will just send a GET for now
httpClient.sendRequest("/accounts/ServiceLogin?service=mail&passive=true&rm=false&continue=http%3A%2F%2Fmail.google.com
<http://2Fmail.google.com>%2Fmail%2F%3Fui%3Dhtml%26zy%3Dl&bsv=zpwhtygjntrz&scc=1<mpl=default<mplcache=2",
new MyCallback());
Peter
Peter
The problem is the RequestExecutionHandler#submitRequest method in your
code. Every time this event is triggered, the request execution handler
submits a new request. Effectively the handler keeps on sending requests
to the server as long as the connection is kept alive. If you intend to
execute one request only, the hander should submit one request only and
then return null to indicate it has no more requests to submit. For
details, please take a look at the following section of the HttpCore
tutorial.
http://hc.apache.org/httpcomponents-core/tutorial/html/nio.html#d0e2024
If you want to re-use a persistent connection at a later point instead
of opening a new connection, you should manage persistent connections
using a connection manager of some sort:
http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpClientConnManagement.java
Hope that clarifies the problem somewhat.
Oleg
On Thu, Jul 23, 2009 at 7:36 AM, Oleg Kalnichevski <[email protected]
<mailto:[email protected]>> wrote:
On Wed, Jul 22, 2009 at 06:41:26PM -0400, Peter Soles wrote:
> I checked the archives of the list - coudn't find the answer to my
> question. Apologies if I missed something.
>
> I'm writing a simulator that will simulate many clients long
polling the
> same server. The server requires SSL so I'm using HttpCore NIO with
> SSLClientIOEventDispatch. When I test my code using SSL, my code
appears to
> submit the request 100 times and receives 100 responses, even
though I have
> only sent one event to the reactor. I pointed my code to two
different
> servers and got the same behavior.
>
> I modified the code to use the DefaultClientIOEventDispatch and tried
> connecting to servers that don't use SSL -- it works perfectly in
this case.
>
>
> I am obviously missing something here - any help would be
appreciated!
>
> Peter
Peter,
What version of HttpCore are you using? Please make sure you have
the latest
(4.0.1) release, as there has been a number of fixes related to the
non-blocking SSL support.
Can you put together a test case and post it to this list?
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
<mailto:[email protected]>
For additional commands, e-mail: [email protected]
<mailto:[email protected]>
------------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]