Я пытаюсь разобрать строку запроса HTTP с HTTP :: request-> синтаксический метод,HTTP :: request-> синтаксический анализ не работает, как ожидалось
GET/HTTP/1.1
Host: www.google.com
Referer: www.google.com
Cookies: A=B
(Там другая «\ г \ п "в конце, но я не могу добавить его, не нарушая подсветку синтаксиса ..)
выше строка работает, когда я посылаю его с nc www.google.com 80 < request
Теперь я пытаюсь разобрать и отправить его Повсеместно LWP :
use warnings;
use strict;
use File::Slurp qw/read_file/;
use HTTP::Request;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $request = HTTP::Request->parse (read_file ('/run/shm/request'));
print Dumper ($request);
my $r = $ua->request ($request);
if ($r->is_success)
{
print $r->decoded_content;
}
else
{
print $r->status_line;
}
И я получаю:
$VAR1 = bless({
'_headers' => bless({}, 'HTTP::Headers'),
'_content' => '',
'_protocol' => 'HTTP/1.1',
'_method' => 'GET',
'_uri' => bless(do{\(my $o = '/')}, 'URI::_generic')
}, 'HTTP::Request');
400 URL must be absolute
Так анализатор не работает, он не может разобрать как URI и заголовки.
Любые идеи?
Пожалуйста, всегда * 'использовать строгие' и 'использовать предупреждения' в верхней части * каждой программы Perl, особенно когда вы просите о помощи. – Borodin
@Borodin Я сделал, просто удалил его в пасте и да, не жалуюсь на Perl ;-) – daisy
Лучше всего, если вы публикуете свой * полный * код или сокращенную версию, демонстрирующую такое же неправильное поведение. Эта конкретная проблема вряд ли была вызвана тем, что были бы раскрыты «строгими» или «предупреждениями», но чаще всего было бы лишнее и ненужное предложение, предлагающее добавить их и показать результаты. – Borodin