открытие URLConnection с определенным веб-ресурсом - PullRequest
2 голосов
/ 19 января 2011

Я не могу открыть URLConnection с определенным веб-ресурсом. Я получаю

"java.net.ConnectException: Connection timed out:". Это из-за того, что домен блокирует прямое URL-соединение? Если так, как они блокируют это? ниже приведен фрагмент кода, который я написал.

Фрагмент кода:

import java.io. ; импорт java.net. ;

открытый класс TestFileRead {

public static void main(String args[]){

    try{

        String serviceUrl = "http://xyz.com/examples.zip";
        HttpURLConnection serviceConnection = (HttpURLConnection) new URL(serviceUrl).openConnection();
        System.out.println(serviceConnection);
        serviceConnection.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"); 

        DataInputStream din=new DataInputStream(serviceConnection.getInputStream());
        FileOutputStream fout=new FileOutputStream("downloaded");
        DataOutputStream dout=new DataOutputStream(fout);
        int bytes;
        while(din.available()>0){
            bytes=din.readByte();
            dout.write(bytes);
        }
    }catch(Exception ex){
        ex.printStackTrace();
    }

}

}

Ответы [ 2 ]

1 голос
/ 19 января 2011

Возможно, вы используете настройку прокси в вашем браузере для доступа к домашней странице Yahoo, которая объясняет, почему он работает в вашем браузере, а не в вашем коде.Вам требуется конфигурация прокси для вашего Java-приложения.

Самый простой способ - установить системные свойства http.proxyHost и http.proxyPort при запуске кода (в Eclipse или при запуске из командной строки просто добавьте * 1005).*) и тебе должно быть хорошо идти.Выберите настройки прокси из конфигурации / настроек вашего браузера.

РЕДАКТИРОВАТЬ: Эта ссылка делает хорошую работу по объяснению возможных решений при работе с прокси в Java.

0 голосов
/ 19 января 2011

Попробуйте, у меня все работает нормально, возвращаю индексную страницу.

String serviceUrl = "http://yahoo.com";     
HttpURLConnection serviceConnection = (HttpURLConnection) new URL(serviceUrl).openConnection();
serviceConnection.addRequestProperty("User-Agent", "blah"); //some sites deny access to some pages when User-Agent is Java
BufferedReader in = new BufferedReader(new InputStreamReader(serviceConnection.getInputStream()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...