web-dev-qa-db-fra.com

Ouvrir l'URL en Java pour obtenir le contenu

Je cherche une opportunité d’ouvrir une URL en 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();

J'ai trouvé ça comme ça.

Je l'ai ajouté dans mon programme et l'erreur suivante s'est produite.

The method openConnection() is undefined for the type URL

(par url.openConnection ())

Quel est mon problème?

J'utilise un serveur Tomcat avec des servlets, ...

14
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();
        }

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

Cela fonctionne pour moi . S'il vous plaît vérifier si vous utilisez les bonnes importations?

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

Le code suivant devrait fonctionner, 

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();
4
deepak bhat

Êtes-vous sûr d'utiliser la classe Java.net.URL? Vérifiez vos déclarations d'importation.

2
rlegendi

Il peut être plus utile d’utiliser une bibliothèque client http telle que this

Il y a plus de choses comme l'accès refusé, le document déplacé, etc. à gérer lorsqu'il s'agit de http.

(cependant, il est peu probable dans ce cas)

1
Jayan

Si vous voulez juste ouvrir la page Web, je pense que moins est plus dans ce cas:

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

J'ai trouvé cette question en cherchant sur Google. Notez que si vous souhaitez simplement utiliser le contenu de l'URI via quelque chose comme une chaîne, envisagez d'utiliser la méthode IOUtils.toString() d'Apache.

Par exemple, un exemple de ligne de code pourrait être:

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