Просмотр полной версии : кукисы и perl
скажите пожалуйссста
вот надо мне сделать пост-запрос на страничку.
после этого мне должны выдать кукисов целый поднос
как с помощью перла их прочитать?
очень нужно
А вот так:
($sock - дескриптор сокета, подразумевается, что ты заешь IO::Socket, если lwp то читай маны.)
while (<$sock>) {
print if /^Set-Cookie:/
}
Этот код просто выведет заголовки.
А вообще сервер дает куки так:
Set-Cookie: Cookie_name=Cookie_val; Cookie_name2=cookie_val2;
я так и думал. спасибо. просто если честно мне какзалось что простой парсинг ответа серва, не самый лучше вариант. но если профи сказал)))
кста, а нельзя их выдрать при помощи Lwp или Http?
кста, а нельзя их выдрать при помощи Lwp или Http?
Можно. Как я уже и сказал, хорошо было бы почитать маны.
Но, имхо, лучше всего юзать IO::Socket.
Насчет парсинга ответа: парсить его придеться в любом случае, но выбирать тебе - ручками, или через lwp.
если ручками, то в ответе кукисы не выглядят как Cookie: Cookie_name=Cookie_val; Cookie_name2=cookie_val2;
у мну ответ такой при установке кукисов
HTTP/1.1 200 OK
Date: Sat, 14 Apr 2007 13:32:48 GMT
Server: Apache/1.3.27 (Win32) PHP/4.3.6
X-Powered-By: PHP/4.3.6
Set-Cookie: userid=asdasd
Connection: close
Content-Type: text/html
если ручками, то в ответе кукисы не выглядят как Cookie: Cookie_name=Cookie_val; Cookie_name2=cookie_val2;
у мну ответ такой при установке кукисов
Хм, да. Не тот пакет, извиняюсь.
Самое удобное это юзать LWP
http://www.citforum.ru/internet/perl/lwp/
Парсить ничего не надо, IO::Socket сделан для обмена данными непосредственно между клиентом и сервом, без протоколов-надстроек, а для HTTP есть LWP::UserAgent
my $ua = LWP::UserAgent->new(agent => 'FF 1.5', cookie_jar => {});
После запроса, $ua->{cookie_jar} будет содержать объект HTTP::Cookies со всеми куками.
ЗЫ: Ессесно не забываем сделать use HTTP::Cookies
Парсить ничего не надо, IO::Socket сделан для обмена данными непосредственно между клиентом и сервом, без протоколов-надстроек, а для HTTP есть LWP::UserAgent
my $ua = LWP::UserAgent->new(agent => 'FF 1.5', cookie_jar => {});
После запроса, $ua->{cookie_jar} будет содержать объект HTTP::Cookies со всеми куками.
ЗЫ: Ессесно не забываем сделать use HTTP::Cookies
!!!
спасибо огромнющие!!!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot