Настройка пользовательского агента Java URLConnection
При попытке анализа веб-страницы с использованием Java с URLConnection и установке пользовательского агента на указанный значения, в конце можно добавить дополнительный «Java/1.5.0_19». Это возникает из-за ограничения в более старых версиях Java.
Решение (Java 1.6.30 и новее)
В Java 1.6.30 и новее эта проблема возникает было решено. Установка пользовательского агента с помощью setRequestProperty("User-Agent", "Mozilla ...") теперь работает правильно без добавления версии Java.
Проверка
Для проверки Для этого вы можете прослушивать порт с помощью netcat, который отображает необработанные HTTP-заголовки входящих запросов. Без установки пользовательского агента в заголовках будет отображаться:
GET /foobar HTTP/1.1 User-Agent: Java/1.6.0_30 Host: localhost:8080 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive
При настройке пользовательского агента вместо этого в заголовках будет отображаться:
GET /foobar HTTP/1.1 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 Host: localhost:8080 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive
Пример кода (Java 1.6.30 )
В следующем примере кода показано, как правильно настроить пользовательский агент:
import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class TestUrlOpener { 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()); } }
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3