2013-06-11 2 views
0

Я все же скопировал следующий код от here. Я получаю java.net.SocketException в строке 10, говоря «Сброс соединения».SocketException: Connection reset

import java.net.*; 
import java.io.*; 
import org.apache.commons.io.*; 

public class HelloWorld { 
    public static void main(String[] x) { 
     try { 
      URL url = new URL("http://money.cnn.com/2013/06/07/technology/security/page-zuckerberg-spying/index.html"); 
      URLConnection con = url.openConnection(); 
      InputStream in = con.getInputStream(); 
      String encoding = con.getContentEncoding(); 
      encoding = encoding == null ? "UTF-8" : encoding; 
      String body = IOUtils.toString(in, encoding); 
      System.out.print(body); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Я беспокоюсь это не может быть на самом деле проблема с фактическим кодом, а скорее какой-то разрешения, мне нужно дать Java. Что-то не так с моим кодом или это проблема среды?

+0

Какая операционная система? Какая среда? (подсказка: в корпоративных средах очень вероятно, что вам не будут разрешены прямые подключения к веб-серверам, и вам придется пройти через прокси) – fge

+0

Согласен @fge, вы также можете попробовать изменить пользователя -Agent, поскольку некоторые прокси или системы IDS блокируют запрос, который может быть получен от бота. Попробуйте добавить перед чем-то вроде System.setProperty («http.agent», «Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/28.0.1468.0 Safari/537.36"); ' – gma

+0

I ' m на ubuntu 12. Я использую прямые подключения (если только python не делает что-то за сценой для меня) в ряде других проектов. Я пробовал несколько сайтов и ничего не работает. – Jake

ответ

0

Я использовал ваш код с небольшой модификацией, потому что у меня нет IOUtils в руках. И это работает так, как должно. Нет необходимости устанавливать агент. Никаких специальных привилегий также не запускается обычным пользователем.

try { 
     URL url = new URL("http://money.cnn.com/2013/06/07/technology/security/page-zuckerberg-spying/index.html"); 
     URLConnection con = url.openConnection(); 
     InputStream in = con.getInputStream(); 
     BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
     StringBuilder sb = new StringBuilder(); 
     String line = br.readLine(); 
     while (line != null) { 
      sb.append(line); 
      line = br.readLine(); 
     } 
     System.out.print(sb.toString()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
+0

Этот код ничего не меняет для меня. Как только я доберусь до 'con.getInputStream(), я получаю исключение. Мне кажется, что я подтверждаю, что в наших системах есть разница в конфигурации, вызывающая это. – Jake

+0

Вы могли бы запустить - wget http://money.cnn.com/2013/06/07/technology/security/page-zuckerberg-spying/index.html в консоли? что находится в index.html? – INeedMySpace

+0

Он загружает его совершенно без проблем – Jake

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