Код ответа 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

Другие вопросы по тегам