我正在寻找一种解决方案,使用用户名和密码从API接收承载令牌。
现在我正在通过Chrome阅读令牌并提取我的数据,这当然不太理想。
我尝试使用httr和curl来通过R获取并接收Bearer令牌,但我认为我很失落。
我认为应该很简单,从登录信息我收集登录的掩码为
{"username":"name","password":"pw"}
,这不应该只使用POST命令和正确的标题吗?
POST(url="api_login",config=add_headers(c("username: name"
,"password: pw")))
根本不起作用。我可以提供php的示例,如下所示:
<?php
// Include Request and Response classes
$url = 'url';
$params = array(
'username' => 'sample_username',
'password' => 'sample_password'
);
// Create a new Request object
$request = new Request($url, 'POST', $params);
// Send the request
$request->send();
// Get the Response object
$response = $request->getResponse();
if($response->getStatusCode() == 200) {
print_r($response->getBodyDecoded());
}
else {
echo $response->getStatusCode() . PHP_EOL;
echo $response->getReasonPhrase() . PHP_EOL;
echo $response->getBody() . PHP_EOL;
}
?>
由于我对php不是很熟悉,因此我会非常高兴能为您提供正确方向的帮助或指导。我搜索了几个小时 通过R进行API访问,但一切看起来都非常特殊于登录。
我发现这个API使用了弃用的Swagger版本,如果这是有用的信息。
答案 0 :(得分:1)
这就是我正在做的事情,登录网站并从我的浏览器中读取令牌。我想从R里面登录,对不起,如果我不清楚的话。
我现在将代码更新为:
opts=curlOptions(verbose=TRUE,
ssl.verifypeer = T)
postForm(url,
"username:" = uname, "password:"=pswd,
httpheader = c('Content-Type' = 'application/json', Accept = 'application/json'),
.opts=opts,
style='POST'
)
导致错误: SSL证书问题:证书链中的自签名证书。
我尝试了许多与cainfo&#39; cainfo&#39;在论证中,但不能使它发挥作用。