2010-12-27 18 views
1

Ich versuche, eine Verbindung zu einer Website herzustellen, auf der ich den HTML-Inhalt extrahieren möchte. Meine Anwendung wird sich nie mit der Site verbinden - nur eine Zeitüberschreitung.Zeitüberschreitung bei Java-URL-Verbindung

Hier ist mein Code:

URL url = new URL("www.website.com"); 
URLConnection connection = url.openConnection(); 
connection.setConnectTimeout(2000); 
connection.setReadTimeOut(2000); 
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()); 
String line; 

while ((line = reader.readLine()) != null) { 
    // do stuff with line 
} 

reader.close(); 

Irgendwelche Ideen wäre sehr dankbar. Vielen Dank!

+0

können Sie mit Ihrem Browser auf diese Website zugreifen? irgendein Proxy-Set? –

+0

Ja, ich kann über den Browser problemlos auf die Website zugreifen. Sollte kein Proxy-Set sein. Wie kann ich sagen? – webren

+0

Setzen Sie das Timeout wirklich auf 2 Sekunden? Wie kompliziert von einer Seite laden Sie? Ändern Sie das Zeitlimit auf 10 Minuten und sehen Sie, ob Sie Daten laden können. –

Antwort

3

Ich glaube, die URL sein sollte (dh müssen Sie ein Protokoll.):

URL url = new URL("http://www.website.com"); 

Wenn das nicht hilft, Ihre echte SSCCE Post, die das Problem veranschaulicht, so müssen wir uns was nicht erraten Sie tun das wirklich, weil wir nicht wissen können, ob Sie Ihren try/catch-Block korrekt verwenden oder ob Sie Ausnahmen ignorieren.

+0

Rechts. Der URL-Kontext: : // ? #

+0

In meinem tatsächlichen Code hatte es das HTTP-Protokoll. Was Sie in meinem Code sehen, ist so ziemlich alles, was für die Methodensignatur erwartet wird, die public ist. String testURLConnection() löst IOException aus. Innerhalb der While-Schleife wird die Zeile gedruckt. Mein Hauptziel ist es, den HTML-Inhalt der Webseite zu parsen, aber ich denke, es wäre am besten, klein anzufangen und sicherzustellen, dass die Verbindung zuerst hergestellt werden kann. – webren

+0

Ich stimme zu, Sie sollten zuerst die Verbindungen testen, bevor Sie den Inhalt analysieren. Ihr Testprogramm sollte also ungefähr 15 Codezeilen umfassen. Veröffentlichen Sie Ihre SSCCE, damit wir nicht raten müssen, was Sie tun. Auf diese Weise können wir Code auch selbst kopieren/einfügen und testen. Warum legen Sie für einen einfachen Test auch den Zeitüberschreitungswert fest? Hast du schon andere URLs probiert, wie Stackoverflow? – camickr

Verwandte Themen