我尝试通过Perl获取访问令牌,如下所示。
my $ua = Mojo::UserAgent->new;
my $base64 = encode_base64 "{id}:{secret}";
my $url = "https://api.pinterest.com/v5/oauth/token";
my $tx = $ua->post(
$url => {
'Authorization' => 'Basic ' . $base64,
'Content-Type' => 'application/x-www-form-urlencoded'
} => form => {
'grant_type' => 'authorization_code',
'code' => {code},
'redirect_uri' => {my redirect url}
}
);
字符串
返回以下错误。
<HTML><HEAD>
<TITLE>Invalid URL</TITLE>
</HEAD><BODY>
<H1>Invalid URL</H1>
The requested URL "http://%5bNo%20Host%5d/v5/oauth/token", is invalid.<p>
Reference #9.5758c317.1698500314.d8e9663
</BODY></HTML>
型
有人知道原因吗?上面的URL是什么?“http://%5bNo%20Host%5d/v5/oauth/token”
怎么解决这个问题?我想知道这是什么网址?可能是编码的。
“http://[无主机]/v5/oauth/token”
我用同样的代码试了几次。我得到了如下不同的消息。这很奇怪...
{“code”:1,“message”:“缺少请求正文”}
{“code”:1,“message”:“参数无效"}
1条答案
按热度按时间ac1kyiln1#
自己解决了。
$base64有意外的CRLF。当我添加chomp($base64)时,问题解决了。encode_base64是否会自动添加CRLF?我将看到原始代码。
多谢了!