Как изменить заголовок HttpUrlConnection - PullRequest
26 голосов
/ 26 января 2009

Я немного пытаюсь улучшить HTML-документ Java, но у меня проблемы с HttpUrlConntion. Одна вещь заключается в том, что некоторые серверы блокируют запрос, если агент пользователя является виртуальной машиной Java. Другая проблема заключается в том, что HttpUrlConnection не устанавливает поле заголовка Referrer или Location. Поскольку некоторые сайты используют эти поля для проверки доступа к контенту с их собственного сайта, я также заблокирован здесь. Насколько я вижу, единственное решение - заменить обработчик URL-адреса протокола HTTP. Или есть ли способ изменить обработчик HTTP по умолчанию?

Ответы [ 3 ]

42 голосов
/ 26 января 2009

Откройте URL с помощью URL.openConnection. Опционально приведение к HttpURLConnection. Звоните URLConnection.setRequestProperty / addRequestProperty.

Значение заголовка User-Agent по умолчанию устанавливается из системного свойства "http.agent". Подключаемый модуль и WebStart позволяют установить это свойство.

2 голосов
/ 26 января 2009

Если вы используете Apache HttpClient для управления программным HTTP-соединением, вы получите чрезвычайно полезный API, который делает создание соединений (и необязательное автоматическое переподключение при сбое), установку заголовков, публикаций и переходов, удобных методов для получения возвращенного контента и многое другое.

0 голосов
/ 10 июля 2015

Я решил свою проблему. Мы можем просто отправить заголовок в application / json и передать тело как объект json. Это просто решает проблему.

...