Отправка HTTP-запроса в Perl - PullRequest
3 голосов
/ 01 июля 2011

Как я могу отправить такой запрос в Perl на Windows?

GET /index.html HTTP/1.1
Host: www.example.org
Cookie: test=quest

Ответы [ 2 ]

9 голосов
/ 01 июля 2011

Вы можете сделать это, используя сокеты:

use IO::Socket;
my $sock = new IO::Socket::INET (
                                 PeerAddr => 'www.example.org',
                                 PeerPort => '80',
                                 Proto => 'tcp',
                                );
die "Could not create socket: $!\n" unless $sock;
print $sock "GET /index.html HTTP/1.0\r\n";
print $sock "Host: www.example.org\r\n";
print $sock "Cookie: test=quest\r\n\r\n";
print while <$sock>;
close($sock);

, но вместо этого вы можете рассмотреть возможность использования LWP (libwww-perl):

use LWP::UserAgent;
$ua = LWP::UserAgent->new;

$req = HTTP::Request->new(GET => 'http://www.example.org/index.html');
$req->header('Cookie' => 'test=quest');

# send request
$res = $ua->request($req);

# check the outcome
if ($res->is_success) { print $res->decoded_content }
else { print "Error: " . $res->status_line . "\n" }

Вы можете попробовать прочитать Поваренная книга LWP для введения в LWP.

3 голосов
/ 01 июля 2011

LWP :: UserAgent - нормальная начальная точка.Вы можете передать объект HTTP :: Cookies вручную, если хотите заранее настроить конкретные значения файлов cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...