Настройка пользовательского агента для URLConnections в Java
При использовании URLConnection в Java для получения веб-контента часто требуется установка пользовательского агента для точное сканирование веб-сайтов и моделирование пользователей. Однако среда выполнения Java по умолчанию добавляет свой собственный идентификатор к строке пользовательского агента, что может быть нежелательно в определенных сценариях.
Запрос
Разработчик Java обратился за помощью при настройке пользовательского агента без суффикса «Java/1.5.0_19», добавленного средой выполнения. Пользователь предоставил фрагмент кода, показывающий, как он пытался установить пользовательский агент с помощью setRequestProperty().
Решение
К счастью, в Java 1.6.30 и более поздних версиях установка пользовательского агента через setRequestProperty("User-Agent", "") работает безупречно, без добавления какой-либо дополнительной информации о времени выполнения Java. Чтобы продемонстрировать это, разработчик использовал netcat для прослушивания входящих HTTP-запросов и заметил, что пользовательский агент был успешно отправлен без суффикса Java.
Полная реализация
import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class CustomUserAgent { public static void main(String[] args) throws IOException { URL url = new URL("http://localhost:8080/foobar"); URLConnection hc = url.openConnection(); hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); System.out.println(hc.getContentType()); } }
Используя этот подход, разработчики могут эффективно настраивать пользовательские агенты для своих URL-соединений на Java без каких-либо нежелательных дополнений, специфичных для Java, обеспечивая желаемое поведение при очистке веб-страниц или других коммуникационных задачах.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3