我在使用基本身份验证有麻烦WWW ::机械化 。 我试图连接到Streak的API ,为此,文件规定:
条纹使用HTTP基本验证签署与您的API密钥每个请求。 只需设置请求API密钥的用户名。 密码字段被忽略。 所有请求都必须通过HTTPS进行的HTTP请求将被忽略。
下面是一个示例请求:
curl https://www.streak.com/api/v1/pipelines -u YOUR_API_KEY:
我可以用成功访问API curl
以这种方式。 但是,我不能使用WWW ::机械化认证成功。 下面是我得到了什么:
#!perl
use warnings;
use strict;
use feature 'say';
use WWW::Mechanize;
my $api = 'https://www.streak.com/api/v1/';
my $mech = WWW::Mechanize->new( autocheck => 0 ); # don't die on errors
$mech->credentials('my API key here', '');
$mech->get($api . 'pipelines');
say $mech->response->status_line;
say $mech->res->request->as_string;
运行我的代码获取:
401 Unauthorized
GET https://www.streak.com/api/v1/pipelines
Accept-Encoding: gzip
User-Agent: WWW-Mechanize/1.83
验证没有甚至正在尝试。 任何人都可以说明为什么这可能是这种情况,什么我可以做些什么来解决这个问题? 此代码是在草莓的Perl 5.24.0.1运行时,如果可能有什么关系呢。
[编辑,包括从检查请求对象的simbabque建议。]