Frage

Ich hoffe, jemand kann mir dabei helfen, da ich danach gesucht habe, aber nichts Funktionierendes gefunden habe.

Ich stelle eine Verbindung zu einer Reihe von URLs aus einer Liste her und alles funktioniert einwandfrei, aber dann bekam ich bei manchen einen 404-Fehler, daher möchte ich jetzt den Fehler abfangen, damit das Programm nicht beendet wird und die Listen-URLs weiter durchgeht.

Dies ist der Fehler, den ich erhalten habe

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=404, URL=http:nameofthesite

Ich verwende Jsoup.connect und der Fehler wird in dieser Codezeile verursacht

    Document doc= Jsoup.connect(countryUrl[i2]).timeout(10*1000)                      
    .userAgent("Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5")
    .get();

Wie kann ich den Code ändern, damit ich den Statuscode erhalten kann?Ich habe Connection.response ausprobiert (etwas, das ich auf dieser Website als Lösung für diese Art von Problem gefunden habe), aber ich habe einen Casting-Fehler erhalten

 Connection.response  response= Jsoup.connect(countryUrl[i2]).timeout(10*1000)                      
            .userAgent("Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5")
            .execute();
            int statusCode = response.statusCode();
            if(statusCode==200){

aber ich erhalte die folgende Fehlermeldung

groovy.lang.MissingMethodException: No signature of method: static org.jsoup.Connection.response() is applicable for argument types: (org.jsoup.helper.HttpConnection$Response) values: [org.jsoup.helper.HttpConnection$Response@c7325ae]
Possible solutions: respondsTo(java.lang.String), respondsTo(java.lang.String, [Ljava.lang.Object;)

Wir freuen uns über jede Hilfe, danke.

War es hilfreich?

Lösung

Ihr Code enthält einen Tippfehler:

Connection.response response = Jsoup.connect(...) ...
//         ^
//         |

Response ist eine statische Klasse (um korrekt zu sein eine Schnittstelle) von Connection, also ändern Sie einfach Ihren Code:

Connection.Response response = Jsoup.connect(...) ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top