«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как правильно настроить пользовательский агент в Java URLConnection?

Как правильно настроить пользовательский агент в Java URLConnection?

Опубликовано 16 ноября 2024 г.
Просматривать:939

How to Correctly Set the User-Agent in Java URLConnection?

Настройка пользовательского агента 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