hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: HttpClient Sockettimeout does not work
Date Wed, 02 Apr 2008 19:15:15 GMT
lavanya.x.sambasivan@chase.com wrote:
> Hello,
> 
> I am using httpclient 3.1. I am trying to make a http request that should 
> timeout when a response is not revceived within 2 minutes. 

See definition of the socket timeout

Oleg

The requirement
> is also to retry 3 times before throwing back an application exception. 
> When I set the socket timeout to >90,000 milliseconds, the timeout never 
> works. Sometimes, I see the connection waiting for more than 2 mins for a 
> response instead of throwing a SocketTimeoutException. Below is the code 
> sample that I am using to make the HttpRequest. 
> 
> 
> 
> String proxyPortNumber= 
> (String)PropertiesUtil.getIonProps().getProperty(IonConstants.PROXYPORT);
>                         String proxyServer  = 
> (String)PropertiesUtil.getIonProps().getProperty(IonConstants.PROXYSERVER);
> 
>                         HttpClient client = new HttpClient();
>  client.getHostConfiguration().setProxy(proxyServer, 
> Integer.parseInt(proxyPortNumber));
>  
>                         Integer connWaitTime=new Integer("120000");
>                         PostMethod postMethod = new PostMethod(url);
>                         HttpMethodRetryHandler retryhandler = new 
> HttpMethodRetryHandler() {
>                         public boolean retryMethod( 
>                                 final HttpMethod method, 
>                                 final IOException exception, 
>                                 int executionCount) {
>                                 if (executionCount >= 3) {
>                                         // Do not retry if over max retry 
> count
>  
>                                         return false;
>                                 }
>                                 System.out.println("Retrying Request::" + 
> executionCount);
>                                 if (exception instanceof 
> java.net.SocketTimeoutException) {
>                                         // Retry if the server dropped 
> connection on us
>                                         return true;
>                                 }
>                                 if (!method.isRequestSent()) {
>                                         // Retry if the request has not 
> been sent fully or
>                                         // if it's OK to retry methods 
> that have been sent
>                                         return true;
>                                 }
>                                 // otherwise do not retry
>                                 return false;
>                           }
>                         };
>  
>  client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, 
> retryhandler);
>  
> //client.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,connWaitTime);
>  
> postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,connWaitTime);
>                         System.out.println("ConnWaitTime ::" + 
> postMethod.getParams().getParameter(HttpMethodParams.SO_TIMEOUT));
>                         postMethod.setRequestEntity(new 
> StringRequestEntity(xmlData, null, null));
>                         postMethod.setRequestHeader("Content-type", 
> "text/xml");
>  
>  
>                         int responseCode = 
> client.executeMethod(postMethod);
>                         BufferedReader rd = new BufferedReader(new 
> InputStreamReader(postMethod.getResponseBodyAsStream()));
>                         String line;
>                         while ((line = rd.readLine()) != null) 
>                         {
>                                 response += line + "\n";
>                         }
>                         //System.out.println("responseBody " + 
> responseBody);
>                         postMethod.releaseConnection();
> 
> 
> I hope you can help me.
> 
> Thanks
> 
> 
> 
> -----------------------------------------
> This transmission may contain information that is privileged,
> confidential, legally privileged, and/or exempt from disclosure
> under applicable law.  If you are not the intended recipient, you
> are hereby notified that any disclosure, copying, distribution, or
> use of the information contained herein (including any reliance
> thereon) is STRICTLY PROHIBITED.  Although this transmission and
> any attachments are believed to be free of any virus or other
> defect that might affect any computer system into which it is
> received and opened, it is the responsibility of the recipient to
> ensure that it is virus free and no responsibility is accepted by
> JPMorgan Chase & Co., its subsidiaries and affiliates, as
> applicable, for any loss or damage arising in any way from its use.
>  If you received this transmission in error, please immediately
> contact the sender and destroy the material in its entirety,
> whether in electronic or hard copy format. Thank you.


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Mime
View raw message