Почему агент пользователя отправляется как "Apache-HttpClient/UNAVAILABLE (java 1.4)"

Пример мобильного приложения отправляет POST-запросы на HTTP-сервер, который мы используем для обработки информации, отправленной из мобильного приложения. Мы анализируем заголовки HTTP, а заголовок User-Agent всегда рассматривается как "Apache-HttpClient" на всех устройствах Android с различными ОС.

Если я выполняю какое-либо действие из приложения в устройстве Android, он возвращает агент пользователя как Apache-HttpClient/UNAVAILABLE (java 1.4)

какая проблема? Он не предоставляет мне строку User Agent, которая содержит информацию, такую ​​как информация о ОС и другие сведения. Кто-нибудь видел подобное поведение раньше?

Ответ 1

Apache-HttpClient/UNAVAILABLE (java 1.4) Является ли строка User Agent по умолчанию для клиента Apache, которую использует ваше приложение, это не само по себе ошибка.

Этот клиент очень мало знает о системе, в которой он работает, что является лучшим - это просто простой способ для всех устройств для Android (который может быть телефоном, планшетом, ТВ или даже автомобиль!), Чтобы сделать http-запросы к внешнему миру.

Строки User Agent - это способ для User Agents (читать "браузеры" ), чтобы идентифицировать себя.

В случае приложения для Android ваше приложение является браузером, поэтому строка агента пользователя предназначена для определения в вашем приложении.

Смотрите: Общий пользовательский агент Android (UA)

Если вы хотите отправить информацию об устройстве, вам необходимо собрать эту информацию в своем приложении, а затем отправить ее. Хотя, если вы собираете эти данные, вы можете также разместить его в теле запроса, а не в заголовках HTTP.