# webseite holen



## marek (26. Mrz 2006)

hallo. ich möchte auf dieser seite mal als erster auf einen eintrag antworten. dazu möchte ich ein programm schreiben, dass die webseite immer wieder anfordert und selbst prüft, ob sie sich verändert hat. 
wie kann ich mit java eine webseite anfordern/holen/aufrufen?

ich hoffe ihr versteht was ich meine. 

mfg, marek


----------



## André Uhres (27. Mrz 2006)

```
//package swing03;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
public class URL_Demo extends JFrame {
    public URL_Demo() {
        initComponents();
    }
    private void initComponents() {
        setTitle("URL Connect");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        toolbar = new JPanel();
        tabbedpane = new JTabbedPane();
        combobox = new JComboBox();
        combobox.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
            "http://kqe.de/seite_1.html",
            "http://news.bbc.co.uk/sport1/hi/football/teams/a/arsenal/default.stm" ,
                    "http://www.amazon.com/"
        }));
        combobox.setPreferredSize(new java.awt.Dimension(500, 22));
        combobox.setSelectedIndex(0);
        combobox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                displayPage();
            }
        });
        toolbar.add(combobox);
        getContentPane().add(toolbar, BorderLayout.NORTH);
        getContentPane().add(tabbedpane);
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setVisible(true);
        displayPage();
    }
    private void displayPage() {
        urlString = combobox.getSelectedItem().toString();
        setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        URL url = null;
        InputStream input = null;
        try{
            url = new URL( urlString );
        }catch(MalformedURLException ex){
            ex.printStackTrace();
        }
        StringBuffer strb = null;
        try{
            try{
                input = url.openStream();
            }catch(UnknownHostException ex){
            }
            if( input != null ){
                int c = input.read();
                strb = new StringBuffer();
                while( c != -1 ){
                    char cc = (char)c;
                    strb.append(cc);
                    c = input.read();
                }
            }
        }catch(IOException ex){
            ex.printStackTrace();
        }
        scrollpane = new JScrollPane();
        tabbedpane.add(scrollpane);
        tabbedpane.setTitleAt(count++, urlString);
        tabbedpane.setSelectedComponent(scrollpane);
        editorpane = new JEditorPane();
        editorpane.setEditable(false);
        editorpane.setContentType("text/html");
        scrollpane.setViewportView(editorpane);
        if( strb != null ){
            editorpane.setText(strb.toString());
            editorpane.setCaretPosition(0);
        }else{
            Toolkit.getDefaultToolkit().beep();
            String htmlText =
                    "<html>"
                    +"<body BGCOLOR=\"#ffffe0\">"
                    +"
Connection failed: 
 " +urlString+
                    "

Make sure you are connected to the Internet"
                    +"</body>"
                    +"</html>";
            editorpane.setText(htmlText);
        }
        setCursor(Cursor.getDefaultCursor());
    }
    public static void main(String args[]) {
        new URL_Demo();
    }
    private String urlString;
    private JEditorPane editorpane;
    private JPanel toolbar;
    private JTabbedPane tabbedpane;
    private JComboBox combobox;
    private JScrollPane scrollpane;
    private int count;
}
```


----------



## youssef (27. Mrz 2006)

Hallo.
ich finde dieses Demo-Beispiel sehr interessant. ich habe es ausprobiert aber bekomme nur Connection timed error bei den Aufruf von openStream() 
funktioniert das Beispiel bei euch ?
ich habe nach der Ursachen im google gesucht. ein paar Beiträge weisen auf der Verwendung von Threads hin.
ich habe auch das Öffnen der Url und das Lesen in einem Thread gepackt aber ich bekomme trotdem denselben Fehler.

youssef


----------



## André Uhres (27. Mrz 2006)

Mit den drei url's aus dem Beispiel funktioniert es jedenfalls bei mir.


----------



## youssef (27. Mrz 2006)

und woran kann es liegen dass bei mir nicht funktioniert.
ich habe doch eine Internetverbindung und ich kann die Seiten von Browser aufrufen.
weiss jemand bescheid

youssef


----------



## marek (27. Mrz 2006)

danke! 
bei mir funktionierts auf jeden fall (nur fehler bei der darstellung). 
jetzt muss ich noch gucken ob ich den quelltext kapier und selbst was draus machen kann. 
mfg, marek


----------



## marek (27. Mrz 2006)

youssef hat gesagt.:
			
		

> und woran kann es liegen dass bei mir nicht funktioniert.
> ich habe doch eine Internetverbindung und ich kann die Seiten von Browser aufrufen.
> weiss jemand bescheid
> 
> youssef



ich wette deine firewall blockiert java. hast du zonealarm oder so was?


----------



## youssef (28. Mrz 2006)

es hat sich erledigt.
es lag an der Proxy einstellungen:
habe ich gelöst mit: 

```
System.setProperty("proxySet", "true");
System.setProperty("proxyHost", "180.161.0.5");
System.setProperty("proxyPort", "3128");
```

youssef


----------

