Groovy, JSOUP, obtener el código de estado
-
26-12-2019 - |
Pregunta
Espero que alguien pueda ayudarme con esto, ya que lo he estado buscando, pero no encontré nada trabajando.
Estoy conectando a una serie de URL de una lista y todo funciona bien, pero luego comencé a obtener un error 404 en algunos, por lo tanto, ahora quiero tomar el error para que el programa no termine y siga pasando por la lista.URLs.
Este es el error que tengo
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=404, URL=http:nameofthesite
Estoy usando jsoup.connect y el error se debe a esta línea de código
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();
¿Cómo puedo cambiar el código para que pueda obtener el código de estado? He intentado Connection.Response (algo que encontré en este sitio como una solución para este tipo de problema) pero estaba recibiendo un error de casting
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){
pero obtengo el siguiente error
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;)
Se apreciará cualquier ayuda, gracias.
Solución
Hay un error tipográfico en su código:
Connection.response response = Jsoup.connect(...) ...
// ^
// |
Response
es una clase estática (interfaz para ser correcta) de Connection
, así que solo cambia tu código:
Connection.Response response = Jsoup.connect(...) ...