Не могу подключиться к серверу, getResponseCode() returning-1
Привет, ребята, я работаю в проекте менеджера загрузки.
Я тестировал какую-то ссылку и работает нормально, однако обнаружил проблему
Эти две ссылки ниже взяты из emupardise, я буду использовать только для того, чтобы показать свою точку зрения.
Если я использую этот код:
String GameLink = "http://www.emuparadise.me/roms/get-download.php?gid=43269&token=2f91d51fcd8b90cec75193ffd592f07c&mirror_available=true";
// String GameLink = "http://www.emuparadise.me/roms/get-download.php?gid=43270&token=a6f395885bea3bbef73d972804d2cbdb&mirror_available=true";
try {
URL url = new URL(GameLink);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Host" ,"www.emuparadise.me");
con.setRequestProperty("Accept" ,"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
con.setRequestProperty("Accept-Encoding" ,"gzip, deflate");
con.setRequestProperty("Referer" ,"www.emuparadise.me");
con.setRequestProperty("Connection" ,"keep-alive");
System.out.println("Server answer :"+ con.getResponseCode());
con.connect();
InputStream is = con.getInputStream();
System.out.println(con.getURL().toString()+"\n");
is.close();
} catch (IOException ex) {
Logger.getLogger(Question.class.getName()).log(Level.SEVERE, null, ex);
}
Во первых я получаю:
"Ответ сервера:200" (как я хочу), однако, используя вторую ссылку, я получаю:
"Ответ сервера:-1", а затем я получаю ошибку: java.io.IOException: Неверный Http-ответ
Я уже проверил заголовок на обеих страницах, и они одинаковы, кроме того, что обе ссылки работают в Internet Download Manager, может кто-нибудь предложить мне решение?
Большое спасибо за ваше время
1 ответ
Согласно Javadoc для getResponseCode()
метод:
Msgstr "Возвращает -1, если никакой код не может быть определен из ответа (т. Е. Ответ не является допустимым HTTP)."
Скорее всего, это проблема на стороне сервера. Вместо того, чтобы отвечать на ваш запрос правильным HTTP-ответом, сервер может отправлять мусор... или просто закрывать соединение. Или это может быть посредник, делающий это; т.е. прокси или обратный прокси.
Возможно, вам следует попытаться использовать монитор пакетов или что-то еще, чтобы определить, что на самом деле находится в ответе сервера. Или просто сообщите об этом сопровождающим сайта.