Тестирование.
Это часто более быстро и легче протестировать Ваше приложение C#/Java при помощи динамического языка. Можно сделать исследовательское тестирование при интерактивной подсказке и быстро создать автоматизированные сценарии тестирования.
Файлы cookie содержатся в одном заголовке HTTP, разделенном точкой с запятой. Пример:
cookie1=value1;cookie2=value2
Итак, вам нужно создать строку из файлов cookie, отправленных сервером, а затем установить ее в качестве заголовка Cookie
.
Изменить : Фактически, игра с бит с httplib2 и перечитав свой вопрос, я не уверен, что вам действительно нужно что-то делать, чтобы получить желаемую функциональность. Значение set-cookie
, которое вы получаете обратно с httplib2, на самом деле является необработанным заголовком Set-Cookie
, отправленным с сервера; вы можете просто поместить это в заголовок cookie
нового ответа, и все будет работать нормально. С технической точки зрения вам следует удалить некоторые атрибуты файлов cookie, такие как expiry
, но я полагаю, что большинство серверов справятся с этим отлично.
Да, я только что узнал в другом месте о заголовке Cookie при выполнении запроса, но сервер может отправлять несколько заголовков Set-Cookie с cookie (и атрибутами срока действия, домена и т. Д.) Для каждого заголовок. Но со словарной системой, используемой в httplib2, я не могу получить все возможные заголовки Set-Cookie, отправленные сервером, но, похоже, только последний.
Итак, есть еще идеи :)?
Проведение дополнительного тестирования с помощью фиктивной 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 ()? Мне пока не особо нужны регулярные выражения, поэтому я не выучил их, и я действительно не хочу терять несколько дней на одно:).
Попробуйте следующее:
pp = re.compile('(Sun|Mon|Tue|Wed|Thu|Fri|Sat),')
pp.sub('','alpha Sun, beta')
'alpha beta'