0

我正在使用 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 时,我得到了预期的结果。

知道如何解决这个问题吗?

4

1 回答 1

1

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

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

在运行查询之前将此行添加到您的代码中:

$ua->proxy->detect;

请参阅Mojo::UserAgent::Proxy 文档

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

$ua->proxy
      ->http('http://127.0.0.1:8080')
      ->https('http://127.0.0.1:8080');
于 2018-12-11T18:16:07.720 回答