2013-08-06 68 views
1

我用LWP :: UserAgent的LWP ::用户代理和代理错误

时,这是代码有一个代理的错误:

my $ua = LWP::UserAgent->new(); 
$ua->proxy(http => $ENV{HTTP_PROXY}); 
print Dumper($ua); 
my $request = new HTTP::Request('GET', $link); 
print Dumper($request); 

,这是对用户代理

$VAR1 = bless({ 
      'max_redirect' => 7, 
      'protocols_forbidden' => undef, 
      'show_progress' => undef, 
      'handlers' => { 
          'response_header' => bless([ 
                  { 
                  'owner' => 'LWP::UserAgent::parse_head', 
                  'callback' => sub { "DUMMY" }, 
                  'm_media_type' => 'html', 
                  'line' => 'C:/Perl/lib/LWP/UserAgent.pm:612' 
                  } 
                 ], 'HTTP::Config'), 
          'request_preprepare' => bless([ 
                   { 
                   'owner' => 'LWP::UserAgent::proxy', 
                   'callback' => sub { "DUMMY" }, 
                   'line' => 'C:/Perl/lib/LWP/UserAgent.pm:920' 
                   } 
                  ], 'HTTP::Config') 
          }, 
      'no_proxy' => [], 
      'protocols_allowed' => undef, 
      'local_address' => undef, 
      'use_eval' => 1, 
      'requests_redirectable' => [ 
              'GET', 
              'HEAD' 
             ], 
      'timeout' => 90, 
      'def_headers' => bless({ 
             'user-agent' => 'libwww-perl/5.837' 
            }, 'HTTP::Headers'), 
      'proxy' => { 
          'http' => 'http://igate:8080' 
         }, 
      'max_size' => undef 
      }, 'LWP::UserAgent'); 
减震器

这是请求:

$VAR1 = bless({ 
      '_content' => '', 
      '_uri' => bless(do{\(my $o = 'https://some_link')}, 'URI::https'), 
      '_headers' => bless({}, 'HTTP::Headers'), 
      '_method' => 'GET' 
      }, 'HTTP::Request'); 

的问题是,响应是一个错误:

FAIL response, 500 proxy connect failed: PROXY ERROR HEADER, could be non-SSL URL: 
HTTP/1.1 503 Service Unavailable 

我使用的ActiveState Perl的5.10.1一个WinXP的机器上

访问来自浏览器链接时它的工作

有人可以帮助?

感谢

+0

什么是$ link值? “https:// some_link”看起来是一个错误的URL –

+0

确实$ link是来自HTTP :: Request对象的“https:// some_link”,我替换它是因为我无法给你真正的链接。我保证我不是从网络上抓取信息,只是从网络应用程序 –

回答

0

我总是需要设置https_proxy(而不仅仅是HTTP_PROXY)与SSL URI来工作。

+0

中得到了与https_proxy相同的错误,并且从错误消息'可能是非SSL URL'我认为简单的http可能是解决方案 –

+0

您是否尝试过使用http:而不是https:? –

+0

请求或我应该在哪里尝试http? –