Почему LWP :: UserAgent GET-запрос завершается неудачно с HTTPS? - PullRequest
1 голос
/ 16 сентября 2010

Вот мой код

#!/path/to/perl
use strict;
use LWP::UserAgent;
use HTTP::Request::Common;
use Crypt::SSLeay;

$ENV{HTTPS_PROXY} = 'http://proxy:8080/';

$ENV{HTTPS_DEBUG} = 1;


my $myurl = "https://www.redhat.com";

my $ua = new LWP::UserAgent;
$ua->cookie_jar( {} ); 
$ua->protocols_allowed( [ 'http','https'] );
$ua->proxy(['http', 'https'], 'http://proxy:8080/');

my $page = $ua->get($myurl);

die "Error $myurl\n ", $page->status_line, "\n Aborting" 
unless $page->is_success; 
print "Success", $page1->content_type, " document!\n"; 

Возвращает

Error at https://www.redhat.com
400 Bad Request
Aborting at test.pl line 30.

что не так?

Редактировать:

Видимо, это ошибка .Но обходной путь не работает для меня.

Ответы [ 4 ]

1 голос
/ 22 июля 2013

Я только что загрузил модуль LWP :: Protocol :: connect в CPAN. Этот модуль добавляет отсутствующую поддержку метода HTTP / CONNECT в LWP.

 use LWP::UserAgent;

 $ua = LWP::UserAgent->new(); 
 $ua->proxy('https', 'connect://proxyhost.domain:3128/');

 $ua->get('https://www.somesslsite.com');

С этим модулем вы можете использовать обычную реализацию IO :: Socket :: SSL для LWP> = 6.00.

1 голос
/ 16 сентября 2010

Ха! Я получил ответ!

1) удалить '/' после порта ENV {HTTPS_PROXY}

2) Очевидно, что прокси-система LWP отправляет запросы 'GET' вместо запросов CONNECT, поэтому используйте прокси-систему Crypt :: SSLeay, просто установив переменную среды и удалив прокси-команду.

1 голос
/ 17 сентября 2010

В некоторых системах, например Debian, вам нужно установить соответствующую библиотеку SSL, чтобы это работало. Сообщения об ошибках в этих системах иногда могут быть ошибочными. Я думаю, что пакет Debian будет libnet-ssleay-perl.

0 голосов
/ 16 сентября 2010

Похоже, ваш прокси-сервер не принимает HTTPS-соединения.Вы пытались настроить его в своем любимом браузере и просмотреть URL-адрес?

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