1

perlLWPを使用してMicrosoft-HTTPAPI/2.0サーバーに接続しようとすると500サーバーエラーが発生します。ブラウザを使用して正常に接続できます。私が見る唯一の違いは、ブラウザがHTTP/1.0プロトコルとLWPHTTP/1.1を発行することです。そこで、LWPに古いプロトコルの使用を強制しようとしましたが成功しませんでした。このプロトコルを設定する例を見つけましたが、Wiresharkを使用したパケット検査ではまだHTTP/1.1が表示されます。私はここで何を逃しましたか。ActivePerlv5.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 に答える