2015-10-13 2 views
3

Случай 1: Мой сервер (доступ к удаленному доступу не имеет доступа в Интернет), имеющий возможность подключения к удаленному серверу в порту 443. Используя URL веб-службы, мне нужно отправить запрос веб-службы и получить ответ. Я могу отправить запрос, но не смог получить ответ с удаленного сервера. код: Вот мой код, который я использую для отправки и получить протокол HTTPS запроса с помощью LWP агента в PerlОшибка чтения статуса в пользовательском домене LWP

use Data::Dumper; 
    use LWP::UserAgent; 
    use HTTP::Status; 
    use HTTP::Response; 
    use HTTP::Request::Common; 
    $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; 
    $LWPUserAgent = new LWP::UserAgent('timeout' => '20'); 
    $LWPUserAgent->ssl_opts('verify_hostname' => 0) ; 
    $WEB_URL="https://webserviceurl.com/Request?Arg1|Arg2|Arg3|Arg4"; 
    $Response = $LWPUserAgent->get($WEB_URL); 
    print Dumper $Response ; 

Я напечатал ответ, используя Data :: Dumper и получая ответ ниже.

$VAR1 = bless({ 
        '_content' => 'Status read failed: at /usr/share/perl5/Net/HTTP/Methods.pm line 269.', 
        '_rc' => 500, 
        '_headers' => bless({ 
              'client-warning' => 'Internal response', 
              'client-date' => 'Tue, 13 Oct 2015 15:13:21 GMT', 
              'content-type' => 'text/plain' 
              }, 'HTTP::Headers'), 
        '_msg' => 'Status read failed: ', 
        '_request' => bless({ 
              '_content' => '', 
              '_uri' => bless(do{\(my $o = 'https://webserviceurl.com/Request?Arg1%7Arg2%7Arg3%7Arg4')}, 'URI::https'), 
              '_headers' => bless({ 
                    'user-agent' => 'libwww-perl/6.04' 
                   }, 'HTTP::Headers'), 
              '_method' => 'GET' 
              }, 'HTTP::Request') 
        }, 'HTTP::Response'); 

Я искал об этом больше в google, и я не могу ничего об этом знать. Информация о моем сервере: ОС - wheezy 7.2 64bit. perl 5, версия 14, subversion 2 (v5.14.2) для x86_64-linux-gnu-thread-multi LWP :: UserAgent - 6.04 HTTP :: Response, HTTP :: Status, HTTP :: Request :: Common версии - 6.03. Случай 2: Мой сервер (в доме и в Интернете), имеющий возможность подключения, используя мой статический ip интернет-соединения. Используя мой прокси-сервер, пытающийся запустить вышеуказанный код с помощью кода ниже.

$ LWPUserAgent-> proxy ('https', 'http://192.168.12.10:3128');

I am able to send and receive the https requests using LWP agent and working fine. 
My server information are: 
OS - squeeze (6.0.6) 32 bit 
perl, v5.10.1 (*) built for i486-linux-gnu-thread-multi 
LWP::UserAgent - 6.13 
HTTP::Response - 5.836 
HTTP::Status - 5.817 
HTTP::Request::Common - 5.824 

I confused of the these things. 
1.OS problem 
2.Package versions problem 
3.whether is it a bug in wheezy 
If any one can provide me the correct direction to resolve this it would be highly appreciated. 
+0

Какая версия Net :: HTTP у вас есть? Это сообщение об ошибке даже не существует в последнем. – ikegami

+0

Учитывая, что это perl '5.10' - которому 6 лет и конец жизни, я бы предположил, что это тоже не новая версия Net :: HTTP. – Sobrique

+0

Версия Net :: HTTP составляет 6.03 –

ответ

0

Укажите $ENV{HTTPS_DEBUG} = 1; и напишите здесь, что напечатает сценарий.

+0

Все еще печатается то же самое. Я не вижу никакой разницы. Ошибка чтения состояния: на /usr/share/perl5/Net/HTTP/Methods.pm строке 269. 500 Внутренняя ошибка. –

 Смежные вопросы

  • Нет связанных вопросов^_^