Разбор HTTP: объект ответа - PullRequest
2 голосов
/ 20 апреля 2011

У меня возникают трудности с получением результатов из формы через Perl. Я считаю, что я успешно нашел форму и отправил нужное значение в соответствующее поле, но не уверен, как превратить объект ответа во что-то полезное (если я его распечатываю, он отображается следующим образом).

HTTP::Request=HASH(0x895b8ac)

Вот соответствующий код (предположим, что $ url правильный)


    my $ua = LWP::UserAgent->new;
    my $responce = $ua->get($url);
    my @form = HTML::Form->parse($responce);
    my $chosen = $form[0];
    $chosen->value('netid', $user);
    my $ro = $chosen->click('Search');

Что я могу сделать, чтобы $ ro был полезен?

Спасибо!

1 Ответ

2 голосов
/ 20 апреля 2011

Цитировать HTML :: Форма документов при нажатии:

Результатом нажатия является объект HTTP :: Request , который затем можно передать LWP :: UserAgent , если вы хотите получить ответ сервера.

Так что вы можете сделать:

my $ua = LWP::UserAgent->new;
my $response = $ua->get($url);
my @form = HTML::Form->parse($response);
my $chosen = $form[0];
$chosen->value('netid', $user);
my $ro = $chosen->click('Search');

# If you want to see what you're sending to the server:
print $ro->as_string;

# Fetch the server's response:
$response = $ua->request($ro);

То, что вы делаете с $response, зависит от того, что вы пытаетесь сделать.

P.S. «Response» обычно пишется без C. Но HTTP имеет историю ошибок в написании. (Я смотрю на тебя, "Реферер".)

...