3
如何在Windows上的Perl中发送这样的请求?在Perl中发送HTTP请求
GET /index.html HTTP/1.1
Host: www.example.org
Cookie: test=quest
如何在Windows上的Perl中发送这样的请求?在Perl中发送HTTP请求
GET /index.html HTTP/1.1
Host: www.example.org
Cookie: test=quest
为此,您可以使用套接字:
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 cookbook的介绍, LWP。
LWP::UserAgent是正常的起点。如果您想提前设置特定的Cookie值,则可以手动传递HTTP::Cookies对象。