кукисы и perl

Discussion in 'PHP' started by x-treem, 14 Apr 2007.

  1. x-treem

    x-treem Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    130
    Likes Received:
    16
    Reputations:
    0
    скажите пожалуйссста
    вот надо мне сделать пост-запрос на страничку.
    после этого мне должны выдать кукисов целый поднос
    как с помощью перла их прочитать?
    очень нужно
     
  2. Gh0s7

    Gh0s7 Elder - Старейшина

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    А вот так:

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

    Code:
    while (<$sock>) {
      print if /^Set-Cookie:/
    }
    
    Этот код просто выведет заголовки.
    А вообще сервер дает куки так:
    Code:
    Set-Cookie: Cookie_name=Cookie_val; Cookie_name2=cookie_val2;
    
     
    #2 Gh0s7, 14 Apr 2007
    Last edited: 14 Apr 2007
  3. x-treem

    x-treem Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    130
    Likes Received:
    16
    Reputations:
    0
    я так и думал. спасибо. просто если честно мне какзалось что простой парсинг ответа серва, не самый лучше вариант. но если профи сказал)))
     
  4. x-treem

    x-treem Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    130
    Likes Received:
    16
    Reputations:
    0
    кста, а нельзя их выдрать при помощи Lwp или Http?
     
  5. Gh0s7

    Gh0s7 Elder - Старейшина

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Можно. Как я уже и сказал, хорошо было бы почитать маны.
    Но, имхо, лучше всего юзать IO::Socket.
    Насчет парсинга ответа: парсить его придеться в любом случае, но выбирать тебе - ручками, или через lwp.
     
  6. x-treem

    x-treem Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    130
    Likes Received:
    16
    Reputations:
    0
    если ручками, то в ответе кукисы не выглядят как Cookie: Cookie_name=Cookie_val; Cookie_name2=cookie_val2;
    у мну ответ такой при установке кукисов
     
  7. Gh0s7

    Gh0s7 Elder - Старейшина

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Хм, да. Не тот пакет, извиняюсь.
     
  8. flipper

    flipper Elder - Старейшина

    Joined:
    5 Sep 2006
    Messages:
    131
    Likes Received:
    85
    Reputations:
    29
    Самое удобное это юзать LWP
    http://www.citforum.ru/internet/perl/lwp/
     
  9. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Парсить ничего не надо, IO::Socket сделан для обмена данными непосредственно между клиентом и сервом, без протоколов-надстроек, а для HTTP есть LWP::UserAgent
    Code:
    my $ua = LWP::UserAgent->new(agent => 'FF 1.5', cookie_jar => {});
    
    После запроса, $ua->{cookie_jar} будет содержать объект HTTP::Cookies со всеми куками.
    ЗЫ: Ессесно не забываем сделать use HTTP::Cookies
     
  10. x-treem

    x-treem Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    130
    Likes Received:
    16
    Reputations:
    0

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