2012-05-22 173 views
2

由于谷歌搜索API已弃用,但我想我的Ruby应用程序使用Bing搜索API(现在的Windows Azure API)。使用Ruby对Azure进行身份验证(HTTP Header身份验证)?

然而,Azure中有你在那里建立一个查询URI一个奇怪的认证模式,将其粘贴到浏览器中,通过钥匙插入标准的HTTP认证对话框的密码箱,并进行POST看到的结果。我认为这会生成一个签名并以某种方式将其传递到标头中。我想在Ruby中完成整个过程,并尽可能跳过浏览器部分。

我发现一个例子obscure Windows Azure storage gem的来源,但我不知道如何建立签名和拨打电话。有没有简单的方法来在Ruby中进行基本的HTTP验证?

回答

2

我继续使用法拉第建基本身份验证方案如下:

connection = Faraday.new "http://api.something.com/1/dudez" 
connection.basic_auth "username" "password" 
connection.get 
+0

'basic_auth'表示它期望一个参数而不是两个。语法是否改变? – cboettig

+0

如果您需要添加任何自定义标题,请确保在标题已设置后添加basic_auth,因为它们将通过标题方法重置。 – fregas

1

我想推荐的创业板RestClient此。我已经在跨领域的GET'ing和POST'ing上取得了巨大的成功。如果你真的要像一个浏览器来实现的API,你可以随时使用Capybara

我很抱歉,我没有试过在Azure API自己,否则我就举一个例子。 :)

0

通过REST签署对Windows Azure Blob存储的请求的方式API在这里描述:http://msdn.microsoft.com/en-us/library/dd179428.aspx

基本上,您不通过简单地在HTTP标头中添加一些凭证进行身份验证,您必须使用与您的存储帐户关联的密钥签署您的请求。