Проблема с post на https

 
0
 
Perl
ava
peektoseen | 12.04.2013, 10:50
Добрый день, господа.
Столкнулся с проблемой.
Написал скриптик:

use warnings;
use strict;
use LWP::UserAgent;

my $url = "https://issa.life.com.by/";
my $code="25";
my $password = "pa55w0rd";
my $phone = "xx01760";
my $ua = LWP::UserAgent->new;
$ua->cookie_jar({});

my $request = HTTP::Request->new(POST=>$url);
$request->content_type('application/x-www-form-urlencoded');
$request->content("Code=$code&Phone=$phone&Password=$password");
my $res = $ua->request($request);
....

На таком хосте:

~# cat /etc/debian_version
6.0.5
~# perl -MLWP -e 'print LWP->Version()."\n";'
6.04

Все отрабатывает нормально.

А на другом:

~ # cat /etc/SuSE-release
openSUSE 12.1 (i586)
VERSION = 12.1
CODENAME = Asparagus

~ # perl -MLWP -e 'print LWP->Version()."\n";'
6.05


Замолкает на my $res = $ua->request($request); просто замолкает, ни таймаута, ни ответа.
Кто-нибудь сталкивался?
Что может быть?
Comments (8)
ava
Pfailed | 12.04.2013, 10:21 #
LWP::Protocol::https установлен?
Попробуйте LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
ava
peektoseen | 12.04.2013, 11:41 #
Цитата (Pfailed @  12.4.2013,  10:21 findReferencedText)
LWP::Protocol::https установлен?

Да, есть.
LWP::Protocol::https is up to date (6.03).

Цитата (Pfailed @  12.4.2013,  10:21 findReferencedText)
Попробуйте LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });

Тоже самое. Так пробовал и до этого, только делал через $ua->ssl_opts(verify_hostname =>0).
Еще делал $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; результат тот-же.
ava
Pfailed | 12.04.2013, 11:46 #
Запустите через strace свой скрипт и сюда вывод его.

strace perl test.pl >output.txt 2>&1
ava
peektoseen | 12.04.2013, 13:04 #
Цитата (Pfailed @ 12.4.2013,  11:46)
Запустите через strace свой скрипт и сюда вывод его.



strace perl test.pl >output.txt 2>&1


Сделал strace. На первый взгляд не понял, на чем затык.
output.txt во вложении.
сейчас скрипт имеет вид:

#!/usr/bin/perl
use warnings;
use strict;
use LWP::UserAgent 6;
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
my $url = "https://issa.life.com.by/";
my $code="xx";
my $password = "pa55word";
my $phone = "xx01760";
my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
$ua->cookie_jar({});

my $request = HTTP::Request->new(POST=>$url);
$request->content_type('application/x-www-form-urlencoded');
$request->content("Code=$code&Phone=$phone&Password=$password");


print "one\n";
my $res = $ua->request($request);
print "two\n";

Как я уже говорил, затык на [19]:my $res = $ua->request($request). Перед ним вижу вывод, после него уже нет.
ava
Pfailed | 12.04.2013, 13:22 #
Похоже на эту проблему: https://rt.cpan.org/Public/Bug/Display.html?id=81237
ava
peektoseen | 12.04.2013, 14:12 #
Цитата (Pfailed @ 12.4.2013,  13:22)
Похоже на эту проблему: https://rt.cpan.org/Public/Bug/Display.html?id=81237

Спасибо за помощь.
Действительно, оказалось оно.
Проблему решил даунгрейдом Net::HTTP до 6.03.
Ещё раз спасибо.
ava
Pfailed | 12.04.2013, 14:17 #
А почему не апгрейдом до 6.06?
ava
peektoseen | 12.04.2013, 16:25 #
Цитата (Pfailed @ 12.4.2013,  14:17)
А почему не апгрейдом до 6.06?

Просто выбор пал на даунгрейд smile
Сейчас поставил 6.06, с ним тоже все ок.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit