How to make the HTTP connection timeout/disconnected after a time interval?

12,752

Solution 1

There are 2 timeouts involved in HTTPClient, try to set both,

  client.getHttpConnectionManager().
        getParams().setConnectionTimeout(5000);
  client.getHttpConnectionManager().
        getParams().setSoTimeout(5000);

However, the values will be ignored if the connection is stuck in a native socket call. So you might have to run the request in a different thread so you can time it out. See my answer to this question on how to do that,

java native Process timeout

Solution 2

The connection manager timeout triggers when the act of trying to get a connection from your connection manager takes too long. This is not the same as the timeout for the http connection itself. Use HttpClientParams.setSoTimeout() instead.

http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/params/HttpMethodParams.html#setSoTimeout%28int%29

Share:
12,752

Related videos on Youtube

mebada
Author by

mebada

Updated on June 04, 2022

Comments

  • mebada
    mebada almost 2 years

    I am new in Apache HttpClient, I used the following code to get the HTTP connection timeout (disconnected) after certain time interval:

    PostMethod method = new PostMethod(authURL);
    HttpClient client = new HttpClient();
    HttpClientParams params= new HttpClientParams();
    params.setParameter(params.CONNECTION_MANAGER_TIMEOUT, 10); //10 Nano second
    client.executeMethod(method);
    

    but it wait for more than one minute without any hope to timeout/disconnect? Where can the problem be?

  • mebada
    mebada over 14 years
    thanks for your reply,,, I have tried the HttpClientParams.setSoTimeout() but the problem still there,ny more suggestions,,,,

Related