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



我正在尝试使用HTTParty连接到一些API。首先,我需要使用我的凭据登录以获得令牌,然后我需要使用此令牌进行其他get请求。

当我这样做的时候:

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上做GET到不同的url,像这样:

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"

有人知道这里可能有什么问题吗?谢谢你。

您只是在标题上混淆了参数。假设这是Oauth/Oauth2,您需要发送值为"承载令牌"的"授权"密钥。

对于你的例子:

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

最新更新