Откройте URL на Java, чтобы получить контент - PullRequest
15 голосов
/ 02 апреля 2012

Я ищу возможность открыть URL в Java.

URL url = new URL("http://maps.google.at/maps?saddr=4714&daddr=Marchtrenk&hl=de");
    InputStream is = url.openConnection().getInputStream();

    BufferedReader reader = new BufferedReader( new InputStreamReader( is )  );

    String line = null;
    while( ( line = reader.readLine() ) != null )  {
       System.out.println(line);
    }
    reader.close();

Я нашел этот путь.

Я добавил его в свою программу, и произошла следующая ошибка.

The method openConnection() is undefined for the type URL

(от url.openConnection ())

В чем моя проблема?

Я использую tomcat-сервер с сервлетами, ...

Ответы [ 8 ]

18 голосов
/ 04 февраля 2013
public class UrlContent{
    public static void main(String[] args) {

        URL url;

        try {
            // get URL content

            String a="http://localhost:8080/TestWeb/index.jsp";
            url = new URL(a);
            URLConnection conn = url.openConnection();

            // open the stream and put it into BufferedReader
            BufferedReader br = new BufferedReader(
                               new InputStreamReader(conn.getInputStream()));

            String inputLine;
            while ((inputLine = br.readLine()) != null) {
                    System.out.println(inputLine);
            }
            br.close();

            System.out.println("Done");

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
10 голосов
/ 06 мая 2013
String url_open ="http://javadl.sun.com/webapps/download/AutoDL?BundleId=76860";
java.awt.Desktop.getDesktop().browse(java.net.URI.create(url_open));
5 голосов
/ 01 июля 2014

Следующий код должен работать,

URL url = new URL("http://maps.google.at/maps?saddr=4714&daddr=Marchtrenk&hl=de");
InputStream is = url.openConnection().getInputStream();

BufferedReader reader = new BufferedReader( new InputStreamReader( is )  );

String line = null;
while( ( line = reader.readLine() ) != null )  {
   System.out.println(line);
}
reader.close();
5 голосов
/ 02 апреля 2012

Это работает для меня.Пожалуйста, проверьте, если вы используете правильный импорт?

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
2 голосов
/ 02 апреля 2012

Вы уверены, что используете класс java.net.URL?Проверьте свои заявления на импорт.

1 голос
/ 02 января 2016

Если вы просто хотите открыть веб-страницу, я думаю, что чем меньше, тем лучше:

import java.awt.Desktop;
import java.net.URI; //Note this is URI, not URL

class BrowseURL{
    public static void main(String args[]) throws Exception{
        // Create Desktop object
        Desktop d=Desktop.getDesktop();

        // Browse a URL, say google.com
        d.browse(new URI("http://google.com"));

        }
    }
}
1 голос
/ 02 апреля 2012

Может быть более полезно использовать клиентскую библиотеку http, такую ​​как this

Есть и другие вещи, такие как отказ в доступе, перемещение документа и т. Д., Которые нужно обрабатывать при работе с http.

(хотя в этом случае это маловероятно)

0 голосов
/ 14 января 2019

Я нашел этот вопрос, пока гуглил. Обратите внимание, что если вы просто хотите использовать содержимое URI через что-то вроде строки, попробуйте использовать метод Apache IOUtils.toString().

Например, пример строки кода может быть:

String pageContent = IOUtils.toString("http://maps.google.at/maps?saddr=4714&daddr=Marchtrenk&hl=de", Charset.UTF_8);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...