Альтернатива java.net.URL для настройки пользовательского тайм-аута

Требуется тайм-аут для удаленного запроса данных, созданного с использованием класса java.net.URL. После того, как некоторые googling выяснили, что существуют два системных свойства, которые можно использовать для установки тайм-аута для класса URL следующим образом.

sun.net.client.defaultConnectTimeout  
sun.net.client.defaultReadTimeout

Я не контролирую все системы и не хочу, чтобы все продолжали устанавливать свойства системы. Есть ли другая альтернатива для удаленного запроса, который позволит мне установить таймауты. Без какой-либо библиотеки, если доступно в java, предпочтительнее.

Ответы

Ответ 1

Если вы открываете URLConnection из URL, вы можете установить таймауты следующим образом:

URL url = new URL(urlPath);
URLConnection con = url.openConnection();
con.setConnectTimeout(connectTimeout);
con.setReadTimeout(readTimeout);
InputStream in = con.getInputStream();

Как вы используете URL или что вы его передаете?

Ответ 2

Общей заменой является Apache Commons HttpClient, он дает гораздо больший контроль над всем процессом получения URL-адресов HTTP.