首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WWW:机械化和HTTPS代理

WWW:机械化和HTTPS代理
EN

Stack Overflow用户
提问于 2014-05-31 02:55:30
回答 1查看 2.2K关注 0票数 1

如何告诉WWW::Mechanize使用HTTPS代理?

我有这样的代码:

代码语言:javascript
复制
use WWW::Mechanize;

print "WWW::Mechanize: ", $WWW::Mechanize::VERSION, "\n";
print "LWP : ", $LWP::UserAgent::VERSION, "\n";

my $mech = WWW::Mechanize->new();

$mech->proxy( [ 'http', 'https' ], "https://204.228.129.46:8080/" );

$mech->add_handler("request_send",  sub { shift->dump; return });
$mech->add_handler("response_done", sub { shift->dump; return });

$mech->get("http://people.iu.edu/");

这是我的输出:

代码语言:javascript
复制
WWW::Mechanize: 1.73
LWP : 6.06
GET http://people.iu.edu/
Accept-Encoding: gzip
User-Agent: WWW-Mechanize/1.73

(no content)
500 Can't connect to 204.228.129.46:8080
Content-Type: text/plain
Client-Date: Sat, 31 May 2014 02:26:15 GMT
Client-Warning: Internal response

Can't connect to 204.228.129.46:8080\n
LWP::Protocol::https::Socket: SSL connect attempt failed with unknown error SSL wants a read first at c:/Perl/site/lib/LWP/Protocol/http.pm line 41.\n
Error GETing http://people.iu.edu/: Can't connect to 204.228.129.46:8080 

更新我在没有运气的情况下尝试过$ENV{...}技巧。我的意思是说这没什么用:

代码语言:javascript
复制
BEGIN {

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

UPDATE2,我在这里读过许多关于Perlmonks的线程,它们都有相同的问题(包括connection://方案),但是没有任何结果。

上一次更新我认为我的代理是坏的,因为我发现有时我的代码工作,有时不工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-31 05:23:14

第一次尝试应该是正确的,尽管您可能为代理指定了错误的协议。根据您使用环境变量的尝试和收到的错误消息,我假设您的http和https代理本身讲的是http,而不是https (通常是这样的)。正确的方式应该是:

代码语言:javascript
复制
$mech->proxy(['http','https],'http://204.228.129.46:8080/');

或者,您可以将http_proxyhttps_proxy环境变量设置为相同的值,并使用$mech->env_proxy使LWP使用它们。

但是,请确保您使用的是最新版本的LWP和LWP::Protocol::https。这两个版本都应该至少为6.0.6,因为在这些版本之前,对https的代理支持已经中断。至少在LWP的情况下,这看起来不错,您也可以检查$LWP::Protocol::https::VERSION。在一些Debian/Ubuntu系统上,它可能也适用于6.05版本,因为它们已经在12/2013中包含了必要的补丁。

如果您没有足够的最新版本,Net::SSLGlue::LWP将对您的版本进行猴子补丁,以获得必要的支持。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23965943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档