2013-04-22 4 views
1

Я пытаюсь подключиться к Интернету с помощью заданных пользователем настроек прокси. Я установил setReadTimeout на 5 секунд. Если настроенный прокси-сервер неверен, мы не сможем подключиться к Интернету, и я использую следующий код, но время чтения не происходит вообще.Использование setReadTimeout в HttpURLConnection с настройками прокси

  URL u = new URL("http://www.google.com/"); 
      System.out.println("Checking internet connection availability....."); 
      System.setProperty("java.net.useSystemProxies", "true"); 
      System.setProperty("http.proxyHost", proxyHost); 
      System.setProperty("http.proxyPort", proxyPort); 
      HttpURLConnection uc = (HttpURLConnection) u.openConnection(); 
      uc.setReadTimeout(5000); 
      System.out.println("Response code : " + uc.getResponseCode()); 
      System.out.println("Internet connection is available....."); 

Если я запустил вышеуказанный код, программа продолжит выполнение и не прекратится через 5 секунд.

Может ли кто-нибудь помочь мне узнать о проблеме в моем коде?

Заранее спасибо.

ответ

2

Попробуйте также добавление uc.setConnectTimeout(5000);

редактирование: Окончательное решение

Используйте uc.connect(); до получения кода ответа.

Кроме того, добавьте конфигурацию прокси-сервера, открыв соединение HttpURLConnection.

Как это:

HttpURLConnection uc = (HttpURLConnection) u.openConnection(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(myProxyHost, Integer.parseInt(myProxyPort)))); 
+0

Я попытался setConnectTimeout() также. Все еще не работает :( – Dinesh

+0

Странно, у меня есть код, похожий на ваш, за исключением того, что я использую библиотеку proxy-vole для управления конфигурацией прокси и, похоже, отлично работает. – Padrus

+1

Возможно, вы можете попробовать использовать 'uc.connect() перед тем как получить код ответа? – Padrus

Смежные вопросы