2013-06-25 3 views
4

Я разрабатываю клиентское приложение. Большинство приложений работает с WebView. Он загружает несколько страниц с веб-сервера.parsing cookie, который не имеет знака равенства (=)

После авторизации пользователя я получаю все файлы cookie и сохраняю их локально. Затем, я положу эти файлы cookie на webView через CookieManager, CookieSyncManager. После того, как пользователь перешел на определенную страницу, сервер вернет те же файлы cookie, но на этот раз с добавится новое значение. С этого времени мне нужно получить эту часть файла cookie и синхронизировать его.

Отметьте, что я не должен получать новый файл cookie и заменять его предыдущим, но найдите то, что нового в файле cookie, и добавьте его в наш текущий.

Я видел проблемы и решения для обработки файлов cookie. Но то, что возвращает сервер, не похоже на стандартные value-pair. Вот как печенье выглядит

PHPSESSID=27dd72de72e1643727c4ddb150b2f988; aes_session=a%3A12%3A%7Bs%3A10%3A%22aaaaaaaa%22%3Bs%3A32%3A%22e116b84c302d763a4f759caa5d178455%22%3Bs%3A10%3A%22bbbbbbb%22%3Bs%3A15%3A%22111.111.111.111%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A40%3A%22Apache-HttpClient%2FUNAVAILABLE+%28java+1.4%29%22%3Bs%3A13%3A%22jjjjjjjj%22%3Bi%3A1372138481%3Bs%3A9%3A%22cccccc%22%3Bs%3A0%3A%22%22%3Bs%3A4%3A%22fail%22%3Bs%3A7%3A%22ddddddd%22%3Bs%3A2%3A%22id%22%3Bs%3A2%3A%2231%22%3Bs%3A8%3A%22eeeeee%22%3Bs%3A7%3A%22ffffffff%22%3Bs%3A4%3A%22ggggggg%22%3Bs%3A9%3A%22hhhhhh%22%3Bs%3A7%3A%22%22%3Bs%3A1%3A%221%22%3Bs%3A6%3A%22iiiiii%22%3Bs%3A1%3A 

iiiiii и его следующее значение добавляется в этом примере.

Вопрос в том, есть ли какие-либо синтаксические анализаторы для работы с этим куки-файлом или я должен думать о написании некоторого regEx? Спасибо за помощь!

ответ

4

В спецификации (RFC 6265) указано, что файлы cookie - это пары имя-значение. Согласно синтаксису в RFC знак равенства ('=') является обязательным.

Поэтому спорный вопрос, будет ли реализация справиться с отсутствующим знаком равенства символов. Недопустимый файл cookie без знака равенства. Ваше приложение ... или что бы то ни было, это настройка этих файлов cookie ... нарушена и должна быть исправлена.


FWIW, если вы хотите задать пару имя/значение с пустым значением, оно является законным, не имеют никакого отношения между равными («=») и точка с запятой («;») или в конце строка cookie. Но спецификация говорит, что '=' является обязательным.


(Тем не менее, то, что озадачивает меня об этом вопросе является то, что пример куки не кажется, есть пример недостающего «=» ...)