Mojo :: useragent SSL失败

时间:2018-12-11 16:57:21

标签: perl ssl mojolicious mojo-useragent

我正在使用Mojo :: Useragent在使用HTTP_PROXY和HTTPS_PROXY定义的代理后面获取某些网站

下面的代码示例:

my $rs = $ua->insecure(1)->get($mysite) 
if($rs->res->is_success) {
    .....
} else {
    print "Problem with fetching $mysite \n";
    print $rs->res->error->{message};
}

我收到此错误:

  

SSL连接尝试失败错误:14077419:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1警报访问被拒绝

当我在同一台机器上使用curl时,我得到了预期的结果。

有什么办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

形成SSL错误,看来您的网络正在积极拒绝让您通过。

定义环境变量HTTP_PROXY和HTTPS_PROXY很好,但是您需要告诉Mojo :: UserAgent使用它们(与cURL不同,它默认情况下会自动查找它们)。

将此行添加到您的代码中,然后再运行查询:

$ua->proxy->detect;

请参见the Mojo::UserAgent::Proxy documentation

如果您正在寻找不使用环境变量的纯Perl解决方案,则可以直接在代码中手动配置代理,例如:

$ua->proxy
      ->http('http://127.0.0.1:8080')
      ->https('http://127.0.0.1:8080');