【发布时间】:2015-08-05 17:42:37
【问题描述】:
我正在尝试向Spingo API 发出请求。我使用 Curl 提出了成功的请求,但我正在尝试使用 Faraday gem。
成功的 curl 请求如下所示:
curl -v --url "calendarapi.spingo.com/v1/events?sections=42336" --header 'Authorization: SpingoAPI token="my-api-key"'
最初我尝试使用默认适配器net-http。然后我切换到Typheous 适配器,因为net-http 在授权标头中将我的SpingoAPI 方案大写。这使它读取了 Spingoapi。现在我的请求看起来像这样:
def make_request
conn = Faraday.new(base_url) do |f|
f.params['sections'] = '42336'
f.adapter :typhoeus
f.use Faraday::Response::Logger
end
conn.authorization(:SpingoAPI, token: api_key)
conn.get
end
切换到Typheous 允许返回一些东西(我没有从net-http 得到任何返回)所以我的回复看起来像这样。
ETHON: performed EASY effective_url=url
sections=42336 response_code=200 return_code=ok total_time=0.844381
I, [2015-08-05T11:16:06.575611 #22692] INFO -- : get http://www.calendarapi.spingo.com/v1/events?sections=42336
D, [2015-08-05T11:16:06.575842 #22692] DEBUG -- request: User-Agent: "Faraday v0.9.1"
Authorization: "SpingoAPI token=\"my-token\""
I, [2015-08-05T11:16:06.576081 #22692] INFO -- Status: 200
D, [2015-08-05T11:16:06.576230 #22692] DEBUG -- response: Content-Type: "text/html; charset=utf-8"
Date: "Wed, 05 Aug 2015 17:16:03 GMT"
Server: "nginx/1.2.9"
Set-Cookie: "VisitorID=GsPJ8NLBiP; expires=Tue, 03-Nov-2015 17:16:03 GMT"
X-Powered-By: "PHP/5.3.10-1ubuntu3.11"
Content-Length: "152"
Connection: "keep-alive"
这让我相信我没有被授权,但是我不知道如何以不同的方式传递授权。
任何帮助将不胜感激。
【问题讨论】:
-
好傻的答案,但使它起作用的事情是从我已有的基本网址中删除 www。显然,该域未设置为接受或不接受它。
标签: ruby-on-rails ruby curl faraday