使用HTTParty post和get连接到第三方API

时间:2016-09-19 12:13:59

标签: ruby api httparty

我正在尝试使用HTTParty连接到某些API。首先,我需要使用我的凭据登录才能获得令牌,之后我需要使用此令牌来发送其他请求。

当我这样做时:

def get_token
    HTTParty.post(base_url + '/login', headers: { "Content-Type": "application/json" }, body: body_hash).body
end

其中

def body_hash
    {
        "username": "my_username",
        "apikey": "7867868yiuhi76"
    }.to_json
end

并且我正确地收到了令牌。

然后我尝试在API上对其他URL进行GET,如下所示:

response = JSON.parse(get_token)            
data = HTTParty.get(base_url + '/some_path', headers: { "Content-Type": "application/json", "Authorization: Bearer" => response['token'] }).body
puts data

我收到错误:

"Internal server error"

有谁知道这里可能出现什么问题?谢谢。

1 个答案:

答案 0 :(得分:0)

您只需将参数混合在标题上即可。假设这是Oauth / Oauth2,您需要发送“授权”#39;密钥值为' Bearer token'。

所以对你的例子来说:

HTTParty.get(base_url + '/some_path', headers: { "Content-Type": "application/json", "Authorization": "Bearer #{response['token']}" }).body