hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <ogjunk-httpcli...@yahoo.com>
Subject Re: Requests hanging, not timing out
Date Thu, 06 May 2004 18:33:52 GMT
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 <olegk@apache.org> 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, ogjunk-httpclient@yahoo.com 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:
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail:
> commons-httpclient-dev-help@jakarta.apache.org
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> commons-httpclient-dev-help@jakarta.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org


Mime
View raw message