httplib2, как установить больше чем один cookie?

Тестирование.

Это часто более быстро и легче протестировать Ваше приложение C#/Java при помощи динамического языка. Можно сделать исследовательское тестирование при интерактивной подсказке и быстро создать автоматизированные сценарии тестирования.

6
задан user168833 15 November 2009 в 17:42
поделиться

4 ответа

Файлы cookie содержатся в одном заголовке HTTP, разделенном точкой с запятой. Пример:

cookie1=value1;cookie2=value2

Итак, вам нужно создать строку из файлов cookie, отправленных сервером, а затем установить ее в качестве заголовка Cookie .

Изменить : Фактически, игра с бит с httplib2 и перечитав свой вопрос, я не уверен, что вам действительно нужно что-то делать, чтобы получить желаемую функциональность. Значение set-cookie , которое вы получаете обратно с httplib2, на самом деле является необработанным заголовком Set-Cookie , отправленным с сервера; вы можете просто поместить это в заголовок cookie нового ответа, и все будет работать нормально. С технической точки зрения вам следует удалить некоторые атрибуты файлов cookie, такие как expiry , но я полагаю, что большинство серверов справятся с этим отлично.

5
ответ дан 16 December 2019 в 21:41
поделиться

Да, я только что узнал в другом месте о заголовке Cookie при выполнении запроса, но сервер может отправлять несколько заголовков Set-Cookie с cookie (и атрибутами срока действия, домена и т. Д.) Для каждого заголовок. Но со словарной системой, используемой в httplib2, я не могу получить все возможные заголовки Set-Cookie, отправленные сервером, но, похоже, только последний.

Итак, есть еще идеи :)?

3
ответ дан 16 December 2019 в 21:41
поделиться

Проведение дополнительного тестирования с помощью фиктивной PHP-страницы setcookie (), которую я создал в 3 test, следующий набор заголовков:

Set-Cookie: chocolate=chips
Set-Cookie: milk=shape


Set-Cookie: chocolate=chips; expires=Sun, 15-Nov-2009 18:47:08 GMT; path=/; domain=thaorius.net; secure; httponly
Set-Cookie: milk=shape


Set-Cookie: chocolate=chips; expires=Sun, 15-Nov-2009 18:46:25 GMT
Set-Cookie: milk=shape

Вывод, фактически предоставляемый httplib2 в ключе set-cookie массива, соответственно для каждой пары заголовков:

chocolate=chips, milk=shape

chocolate=chips; expires=Sun, 15-Nov-2009 18:31:00 GMT; path=/; domain=thaorius.net; secure; httponly, milk=shape

chocolate=chips; expires=Sun, 15-Nov-2009 18:38:21 GMT, milk=shape

Таким образом, похоже, что httplib2 действительно решает проблему правильно, но теперь я представлен с другой проблемой. Знак "," в атрибуте истекает. Как видите, файлы cookie разделяются запятой, но как отличить их от атрибутов expires.

Я мог бы разделить строку запятыми, а затем «;» и получить пары значений ключа для каждого печенье, красиво и легко; но с запятой в expires я не могу этого сделать.

Итак, я думаю, я мог бы использовать регулярное выражение, которое в основном ищет «expires = letter, num & letter nums: nums: nums randomchars [, | ; | $] "и заменяет его на что-то вроде expires = STUB, так как меня действительно не волнует время истечения срока хранения файлов cookie.

Итак, не мог бы кто-нибудь дать мне регулярное выражение, которое я могу передать в re.sub ()? Мне пока не особо нужны регулярные выражения, поэтому я не выучил их, и я действительно не хочу терять несколько дней на одно:).

2
ответ дан 16 December 2019 в 21:41
поделиться

Попробуйте следующее:

pp = re.compile('(Sun|Mon|Tue|Wed|Thu|Fri|Sat),')
pp.sub('','alpha Sun, beta')
'alpha  beta'
-2
ответ дан 16 December 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: