web-dev-qa-db-ja.com

コンテンツを取得するには、JavaでURLを開きます

JavaでURLを開く機会を探しています。

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

(by url.openConnection())

私の問題は何ですか?

サーブレットでTomcatサーバーを使用します。

15
alexander-fire
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();
        }

    }
}
18
Vaibs
String url_open ="http://javadl.Sun.com/webapps/download/AutoDL?BundleId=76860";
Java.awt.Desktop.getDesktop().browse(Java.net.URI.create(url_open));
10
miguepiscy

次のコードが機能するはずです、

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
deepak bhat

わたしにはできる。適切なインポートを使用しているかどうかを確認してください。

import Java.io.BufferedReader;
import Java.io.InputStream;
import Java.io.InputStreamReader;
import Java.net.URL;
5
Glenn VdB

Java.net.URLクラスを使用してよろしいですか?インポート文を確認してください。

2
rlegendi

this などのhttpクライアントライブラリを使用する方が便利な場合があります

Httpを処理するときに、アクセスの拒否、ドキュメントの移動などの処理が必要になります。

(ただし、この場合はほとんどありません)

1
Jayan

ウェブページを開きたいだけなら、この場合は少ないほうがいいと思います:

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
Andy Reid

グーグルでこの質問を見つけました。文字列のようなものを介してURIのコンテンツを利用したいだけであれば、Apacheの IOUtils.toString() メソッドの使用を検討してください。

たとえば、コードのサンプル行は次のようになります。

String pageContent = IOUtils.toString("http://maps.google.at/maps?saddr=4714&daddr=Marchtrenk&hl=de", Charset.UTF_8);
0
entpnerd