Определение наличия файлов cookie через Java - PullRequest
0 голосов
/ 11 февраля 2010

Возможно ли в Java (SE, а не J2EE) определять, включены ли файлы cookie в браузере по умолчанию?

Это не клиент-серверное приложение. Это просто настольное приложение, которое взаимодействует с браузером по умолчанию.

Ответы [ 3 ]

2 голосов
/ 11 февраля 2010

Я не уверен, что вы подразумеваете под "браузером по умолчанию", но фундаментальная вещь для понимания здесь заключается в том, что код, будь он написан на Java, C ++, Python, назовите его, который обрабатывает HTTP-запрос, должен устанавливать cookie используя Set-Cookie и найдите, что было установлено, доступным в заголовке Cookie в последующих запросах от браузера. Если cookie отключены в клиенте, то в последующих запросах заголовок Cookie не будет. Простое перенаправление на начальный запрос также можно использовать для генерации «последующего» запроса.

0 голосов
/ 11 февраля 2010

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

Один из способов - перенаправить запрос на специальный URL-адрес со специальным файлом cookie, скажем, «CookieCheck» с некоторым известным специальным значением и исходным URL-адресом, закодированным как данные запроса. При получении запроса на специальный URL-адрес, если получено «CookieCheck», то браузер принял cookie-файл - вы можете перенаправить обратно на исходный URL-адрес, но с cookie-файлом, установленным в реальное значение.

Это может быть трудно сделать для запросов POST, если вы не можете сохранить сторону сервера почтовых данных или закодировать ее в данные запроса. Он также преобразует запрос из POST в GET, что может быть проблематично.

0 голосов
/ 11 февраля 2010

Существует много браузеров, и каждый использует свой механизм хранения настроек пользователя ... включая настройки, которые определяют, отключил ли пользователь куки-файлы.

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

Но в нем будет много кода, специфичного для браузера и операционной системы. А в случае с Windows это повлекло бы за собой перебор в реестре; например используя какую-то стороннюю библиотеку. И, конечно, все это будет довольно хрупким, потому что:

  1. следующая версия / выпуск браузера пользователя может использовать другое представление настроек,

  2. пользователь может использовать новый браузер, о котором вы никогда не слышали,

  3. различные дистрибутивы Linux и т. Д. Могут быть настроены на использование разных местоположений по умолчанию для файлов настроек и / или файла настроек, в котором указано, какой браузер у пользователя по умолчанию, и

  4. пользователь может в любом случае переопределить местоположения по умолчанию так, что обычное настольное приложение не может его понять.

EDIT - с другой стороны, если вашему настольному приложению (выполняющему роль сервера по протоколу HTTP) просто необходимо выяснить, является ли браузером, с которым оно в данный момент общается позволит ему устанавливать куки, простое решение - попытаться сделать это и посмотреть, работает ли он.

Наконец, вы должны иметь в виду, что пользователь может не использовать браузер по умолчанию для всего, что он пытается сделать. У меня часто на компьютере установлено несколько браузеров, и я могу использовать не определенный по умолчанию браузер для определенных вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...