1

尝试使用 perl LWP 连接到 Microsoft-HTTPAPI/2.0 服务器时出现 500 服务器错误。可以使用浏览器成功连接。我看到的唯一区别是浏览器问题 HTTP/1.0 协议与 LWP HTTP/1.1。所以我尝试强制 LWP 使用旧协议但没有成功。我找到了设置此协议的示例,但使用 Wireshark 进行的数据包检查仍显示 HTTP/1.1。我在这里错过了什么。使用 Active Perl v5.16.1。

#! C:\Perl64\bin\perl.exe
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common;
my $ua = new LWP::UserAgent(keep_alive=>1);
# trying to force HTTP/1.0
push(@LWP::Protocol::http::EXTRA_SOCK_OPTS, PeerHTTPVersion => "1.0");
my $response = $ua->request(GET "http://google.com");
4

1 回答 1

1

这将使 LWP 指定 HTTP/1.0。

my $request = GET "http://google.com";
$request->protocol('HTTP/1.0');
my $response = $ua->request($request);
于 2012-10-11T17:23:44.197 回答