5

我阅读了“Bing Search API - 快速入门”,但我不知道如何在 Ruby 中发出这个 http 请求(疲倦

如何在 Ruby 中翻译“Stream_context_create()”?这是什么意思?

“必应搜索 API - 快速入门” 在此处输入图像描述

我想使用 Ruby sdk,但我发现那些已被弃用的 ex (Rbing) https://github.com/mikedemers/rbing 你知道 Bing 搜索 API 的最新包装器(仅限 Web 的结果)吗?

4

3 回答 3

7

好吧,经过一个小时的挫折,我想出了一个办法。这段代码很糟糕,因为它是我工作的第一个版本。基本上,忽略关于 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
于 2012-12-02T02:37:09.083 回答
2

试试bing-search gem:

require 'bing-search'

BingSearch.account_key = <your key>
BingSearch.web_only = true
results = BingSearch.web('stack overflow')

文档在这里,源代码在GitHub 上。(免责声明:我写了 bing-search gem。)

于 2015-01-22T04:06:54.250 回答
1

哇,微软文档啊,这么简单的东西,我花了 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
于 2013-09-19T17:52:56.613 回答