Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   кукисы и perl (https://forum.antichat.xyz/showthread.php?t=37947)

x-treem 14.04.2007 15:56

кукисы и perl
 
скажите пожалуйссста
вот надо мне сделать пост-запрос на страничку.
после этого мне должны выдать кукисов целый поднос
как с помощью перла их прочитать?
очень нужно

Gh0s7 14.04.2007 16:07

А вот так:

($sock - дескриптор сокета, подразумевается, что ты заешь IO::Socket, если lwp то читай маны.)

Код:

while (<$sock>) {
  print if /^Set-Cookie:/
}

Этот код просто выведет заголовки.
А вообще сервер дает куки так:
Код:

Set-Cookie: Cookie_name=Cookie_val; Cookie_name2=cookie_val2;

x-treem 14.04.2007 16:15

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

x-treem 14.04.2007 16:50

кста, а нельзя их выдрать при помощи Lwp или Http?

Gh0s7 14.04.2007 17:22

Цитата:

Сообщение от x-treem
кста, а нельзя их выдрать при помощи Lwp или Http?

Можно. Как я уже и сказал, хорошо было бы почитать маны.
Но, имхо, лучше всего юзать IO::Socket.
Насчет парсинга ответа: парсить его придеться в любом случае, но выбирать тебе - ручками, или через lwp.

x-treem 14.04.2007 17:34

если ручками, то в ответе кукисы не выглядят как 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

Gh0s7 14.04.2007 17:39

Цитата:

Сообщение от x-treem
если ручками, то в ответе кукисы не выглядят как Cookie: Cookie_name=Cookie_val; Cookie_name2=cookie_val2;
у мну ответ такой при установке кукисов

Хм, да. Не тот пакет, извиняюсь.

flipper 14.04.2007 18:23

Самое удобное это юзать LWP
http://www.citforum.ru/internet/perl/lwp/

KSURi 14.04.2007 20:45

Парсить ничего не надо, IO::Socket сделан для обмена данными непосредственно между клиентом и сервом, без протоколов-надстроек, а для HTTP есть LWP::UserAgent
Код:

my $ua = LWP::UserAgent->new(agent => 'FF 1.5', cookie_jar => {});
После запроса, $ua->{cookie_jar} будет содержать объект HTTP::Cookies со всеми куками.
ЗЫ: Ессесно не забываем сделать use HTTP::Cookies

x-treem 14.04.2007 22:29

Цитата:

Сообщение от KSURi
Парсить ничего не надо, IO::Socket сделан для обмена данными непосредственно между клиентом и сервом, без протоколов-надстроек, а для HTTP есть LWP::UserAgent
Код:

my $ua = LWP::UserAgent->new(agent => 'FF 1.5', cookie_jar => {});
После запроса, $ua->{cookie_jar} будет содержать объект HTTP::Cookies со всеми куками.
ЗЫ: Ессесно не забываем сделать use HTTP::Cookies


!!!
спасибо огромнющие!!!


Время: 18:28