HttpConnectionManagerParams cmparams = new HttpConnectionManagerParams();
cmparams.setSoTimeout(10000);
cmparams.setTcpNoDelay(true);
HttpConnectionManager manager = new SimpleHttpConnectionManager();
manager.setParams(cmparams);
params = new HttpClientParams();
params.setSoTimeout(5000);
client = new HttpClient(params, manager);
Интересно, почему у меня установлено два разных SoTimeouts. Возможно, я пытался выяснить, какой из них на самом деле был активным, поскольку у меня были те же проблемы, что и у вас, когда я его использовал.
Выше приведено в живом коде у нас прямо сейчас, но я не могу сказать, работает ли он, потому что он правильный, или потому что провидение мне улыбается (а другой конец обычно всегда доступен).