请参阅:https://developer.spotify.com/web-api/authorization-guide/
我正在使用"客户端凭据流"方法
sub get_token {
my $req = HTTP::Request->new(POST => $SPOTIFY_TOKEN);
$req->header('Authorization' => 'Basic MYBASE64HERE');
my $post_data = 'grant_type=client_credentials';
$req->content($post_data);
my $resp = $ua->request($req); #this is LWP
if ($resp->is_success) {
my $token = $resp->decoded_content;
print "$token\n";
return \$token;
}
else {
print "HTTP POST error code: ", $resp->code, "\n";
print "HTTP POST error message: ", $resp->message, "\n";
}
}
我回来了HTTP POST error code: 400 / bad request
我知道它与标题信息或URL没有关系。我通过Curl测试并使用Data :: Dumper来验证其格式是否正确。
我不确定我需要发送POST正文数据的格式。我已经尝试过上面的示例my $post_data = 'grant_type=client_credentials';
以及我能想到的每个变体。有没有一种正确的方法在Perl中使用HTPP :: Request构建POST请求?
答案 0 :(得分:0)
我认为以下应该有效,请尝试:
$req->content(grant_type => 'client_credentials');
答案 1 :(得分:0)
my $ post_data =“grant_type = client_credentials”;
原来这就是答案。我不确定我之前是如何错过的。