Альтернатива 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.