2012-10-11 6 views
1

Получение ошибки сервера 500, пытающейся подключиться к серверу Microsoft-HTTPAPI/2.0 с использованием Perl LWP. Можно успешно подключиться с помощью браузера. Единственное отличие, которое я вижу, - это проблемы браузера HTTP/1.0 и LWP HTTP/1.1. Поэтому я попытался заставить LWP использовать старый протокол без успеха. Я нашел примеры для установки этого протокола, но проверка пакетов с помощью Wireshark по-прежнему показывает HTTP/1.1. Что я пропустил здесь. Использование Active Perl v5.16.1.Perl LWP пытается установить peer_http_version в HTTP/1.0

#! 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"); 
+0

Какой браузер вы используете, отправляя запросы HTTP/1.0 ?! – friedo

+0

@friedo Firefox/15.0.1 –

+0

Невозможно, чтобы Firefox отправлял запросы HTTP/1.0, если вы не вручную обновили конфигурацию 'network.http.version', и я не могу думать о какой-либо причине для кого-то что. Как вы просматриваете эти HTTP-запросы? – friedo

ответ

1

Это сделает LWP указать HTTP/1.0.

my $request = GET "http://google.com"; 
$request->protocol('HTTP/1.0'); 
my $response = $ua->request($request);