La respuesta de @jontro es correcta, pero siempre es bueno tener un fragmento de código sobre cómo hacerlo. Hay dos maneras de hacer esto:
Versión 1: Establecer un segundo tiempo de espera de 10 para cada uno de estos parámetros:
HttpClient httpclient = new DefaultHttpClient();
// this one causes a timeout if a connection is established but there is
// no response within 10 seconds
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10 * 1000);
// this one causes a timeout if no connection is established within 10 seconds
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10 * 1000);
// now do the execute:
HttpGet httpget = new HttpGet(URL);
HttpResponse response = httpclient.execute(httpget);
Versión 2: también estableció un segundo tiempo de espera de 10 para cada uno de estos parámetros:
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 10 * 1000);
HttpConnectionParams.setSoTimeout(params, 10 * 1000);
HttpClient httpclient = new DefaultHttpClient(params);
HttpGet httpget = new HttpGet(URL);
HttpResponse response = httpclient.execute(httpget);
Debe agregar' requestBuilder.setSocketTimeout (timeout); 'también. Tenga en cuenta que 'timeout' debe ser de milisegundos. – Stefan
Tenga en cuenta que llamar a 'setConnectTimeout()' y ['setConnectionRequestTimeout()'] (http://stackoverflow.com/questions/20271017/connection-and-connection-request-timeout#comment30255182_20271424) es ** no ** el mismo como configuración 'CONNECTION_TIMEOUT' y' SO_TIMEOUT' (como en la pregunta). Probablemente desee 'setConnectTimeout()' y 'setSocketTimeout()'. – Jonik
Además, el Generador le permite encadenar esas declaraciones para un código mucho más simple: 'RequestConfig config = RequestConfig.custom(). SetConnectTimeout (timeout) .setSocketTimeout (timeout) .build();' – Jonik