Я пытаюсь написать систему оповещения, чтобы периодически публиковать жалобы на сайте, чтобы искать жалобы на мой продукт. Я использую Jsoup для того же. Ниже приведен фрагмент кода, который дает мне ошибку.Скребок сайта
doc = Jsoup.connect(finalUrl).timeout(10 * 1000).get();
Это дает мне ошибку
java.net.SocketException: Unexpected end of file from server
Когда я копировать вставить ту же finalUrl строку в браузере, она работает. Затем я попробовал простое URL-соединение.
BufferedReader br = null;
try {
URL a = new URL(finalUrl);
URLConnection conn = a.openConnection();
// open the stream and put it into BufferedReader
br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
doc = Jsoup.parse(br.toString());
} catch (IOException e) {
e.printStackTrace();
}
Но, как оказалось, само соединение возвращает null (br равно null). Теперь вопрос в том, почему одна и та же строка, когда копия, вставленная в браузере, открывает сайт без каких-либо ошибок?
Полный StackTrace как показано ниже:
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:774)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:771)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
at ComplaintsBoardScraper.main(ComplaintsBoardScraper.java:46)
Создает ли ваш url с 'http: //' и ваш сервер разрешает подключения к порту '80'? – ollo
@ollo yes URL начинается с http: //. Сервер - это удаленный сервер, который не находится под моим контролем. Хотя, когда я пытаюсь выполнить команду «nc» на сервере, он говорит: «Успешно удалось подключиться к complaintsboard.com 80 port [tcp/http]! – rishi
У вас есть неограниченные символы в URL-адресе или интернет-доступ заблокирован для вашего приложения? Переводит ли URL-адрес другому? – ollo