bacana, Jsoup, obtenha o código de status
-
26-12-2019 - |
Pergunta
Espero que alguém possa me ajudar com isso, pois estou procurando, mas não encontrei nada que funcione.
Estou me conectando a vários URLs de uma lista e tudo funciona bem, mas comecei a receber um erro 404 em alguns, portanto, agora quero capturar o erro para que o programa não termine e continue percorrendo os URLs da lista.
Este é o erro que recebi
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=404, URL=http:nameofthesite
Estou usando Jsoup.connect e o erro é causado nesta linha 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();
Como posso alterar o código para obter o código de status.Eu tentei Connection.response (algo que encontrei neste site como uma solução para esse tipo de problema), mas estava recebendo um erro de transmissão
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){
mas recebo o seguinte erro
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;)
Qualquer ajuda será apreciada, obrigado.
Solução
Há um erro de digitação no seu código:
Connection.response response = Jsoup.connect(...) ...
// ^
// |
Response
é uma classe estática (interface para ser correta) de Connection
, então basta alterar seu código:
Connection.Response response = Jsoup.connect(...) ...