I like bleeding edge code, I'll try it as soon as you have it ready.
I am now using the current HEAD and setting the timeout as you
suggested.
What is the difference between connection and socket timeout, and is
connection timeout even needed if I set a socket timeout?
Thanks,
Otis
--- Oleg Kalnichevski <[EMAIL PROTECTED]> wrote:
> Otis,
> Nowhere in your code do I see you set socket timeout. Connection
> timeout
> determines the time HttpClient spends waiting a connection to be
> established. The connection timeout does not affect socket I/O
> operations.
>
> Try this:
>
> _client.getHttpConnectionManager().getParams().setSoTimeout(5000);
>
> Besides, we are just four bugs away from the first HttpClient 3.0
> alpha
> release when we formerly invite the users to review the new API. We'd
> be
> more than interested to have your feedback.
>
> Cheers,
>
> Oleg
>
>
>
> On Thu, 2004-05-06 at 19:50, [EMAIL PROTECTED] wrote:
> > Hello,
> >
> > I am using HttpClient from CVS HEAD from exactly 1 month ago (May
> 6,
> > 2004). Although I set the time-out to 5 seconds, I noticed that it
> > does not always work, and because of that my application often
> hangs
> > indefinitely.
> >
> > Perhaps I'm not using the API correctly.
> > Here are the relevant portions of my code:
> > (HttpResponse is my class - a simple 'struct', nothing else)
> >
> >
> > HttpClientParams clientParams = new HttpClientParams();
> > clientParams.setParameter(HttpClientParams.USER_AGENT, "xxx");
> >
> > _client = new HttpClient(clientParams);
> >
>
_client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
> >
> > GetMethod method = new GetMethod(urlString);
> > method.setFollowRedirects(false);
> >
> > String responseBody = null;
> > try {
> > _client.executeMethod(method);
> > responseBody = method.getResponseBodyAsString();
> > } catch (HttpException he) {
> > System.err.println("Http error connecting to '" + url + "'");
> > method.releaseConnection();
> > method.recycle();
> > return new HttpResponse(-1, -1, null, null);
> > } catch (IOException ioe) {
> > System.err.println("Unable to connect to '" + url + "'");
> > method.releaseConnection();
> > method.recycle();
> > return new HttpResponse(-1, -1, null, null);
> > }
> >
> > int statusCode = method.getStatusCode();
> > long sizeBytes = method.getResponseContentLength();
> > String charSet = method.getResponseCharSet();
> > String lang = null;
> >
> > // clean up the connection resources
> > method.releaseConnection();
> > method.recycle();
> >
> > return new HttpResponse(statusCode, sizeBytes, null, charSet);
> >
> >
> >
> > Am I forgetting to call something that will ensure that no request
> ever
> > hangs forever?
> >
> > Thank you,
> > Otis
> >
> >
> >
> ---------------------------------------------------------------------
> > 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]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]