Thanks Oleg - I guess I goofed in my understanding of how the handler works. Need to read the tutorial (again!). I would definitely like to use a connection manager to reuse the connection. It's working great now! Thanks again for the help.
Peter On Thu, Jul 23, 2009 at 5:17 PM, Oleg Kalnichevski <[email protected]> wrote: > 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] > >
