我阅读了“Bing Search API - 快速入门”,但我不知道如何在 Ruby 中发出这个 http 请求(疲倦)
如何在 Ruby 中翻译“Stream_context_create()”?这是什么意思?
我想使用 Ruby sdk,但我发现那些已被弃用的 ex (Rbing) https://github.com/mikedemers/rbing 你知道 Bing 搜索 API 的最新包装器(仅限 Web 的结果)吗?
我阅读了“Bing Search API - 快速入门”,但我不知道如何在 Ruby 中发出这个 http 请求(疲倦)
如何在 Ruby 中翻译“Stream_context_create()”?这是什么意思?
我想使用 Ruby sdk,但我发现那些已被弃用的 ex (Rbing) https://github.com/mikedemers/rbing 你知道 Bing 搜索 API 的最新包装器(仅限 Web 的结果)吗?
好吧,经过一个小时的挫折,我想出了一个办法。这段代码很糟糕,因为它是我工作的第一个版本。基本上,忽略关于 base64 编码的所有内容,因为它给了我一个错误,即只支持 oAuth 和基本身份验证。原来微软的文档是错误的,你应该只使用你的帐户密钥作为请求中的密码,而不是编码字符串。
require 'net/http'
accountKey = 'KEY'
url = 'https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?Query=%27xbox%27&$top=50&$format=json'
uri = URI(url)
req = Net::HTTP::Get.new(uri.request_uri)
req.basic_auth '', accountKey
res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https'){|http|
http.request(req)
}
puts res.body
试试bing-search gem:
require 'bing-search'
BingSearch.account_key = <your key>
BingSearch.web_only = true
results = BingSearch.web('stack overflow')
哇,微软文档啊,这么简单的东西,我花了 30 分钟在网上搜寻如何使用它。无论如何,这是使用RestClient对 Chris Bui 的回答的另一种看法:
class BingSearch
def self.for(account_key, query)
puts RestClient.get("https://:#{account_key}@api.datamarket.azure.com/Bing/SearchWeb/v1/Web?Query='#{CGI::escape(query)}'&$format=json")
end
end