Код ответа HTTP приходит как 403 вместо 200, почему?
Когда используется URL " https://www.parcelhero.com/", код дает код ответа http как 403, несмотря на успешное открытие сайта, а фактический код ответа равен 200. Пожалуйста, сообщите мне причину.
try {
URL url = new URL("https://www.parcelhero.com");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int code = connection.getResponseCode();
//e.printStackTrace();
System.out.println(code);
}
catch (IOException e) {
e.printStackTrace();
}
1 ответ
Некоторые серверы веб-сайтов требуют, чтобы при отправке запроса были установлены определенные заголовки HTTP. В противном случае они будут отклонять запрос с 403 ответом, когда вы получаете.
Вам просто нужно установить User-Agent
свойство заголовка запроса с помощью connection.setRequestProperty()
чтобы это работало:
try {
URL url = new URL("https://www.parcelhero.com");
HttpsURLConnection connection = (HttpsURLConnection)
url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
int code = connection.getResponseCode();
//e.printStackTrace();
System.out.println(code);
}
catch (IOException e) {
e.printStackTrace(System.out);
}
А вот рабочий фрагмент кода для тестирования в Интернете: http://rextester.com/ITB98285