如何在没有身份验证的情况下解析 ruby 中的 uri

How to Parse uri in ruby without Authentication

我的代码,

require 'net/http'
require 'json'

url = 'http://api.spotify.com/v1/search?type=artist&q=tycho'
uri = URI(url)
response = Net::HTTP.get(uri)
JSON.parse(response)
puts(response)

只要它是 http,它就可以工作,但它是 https 的实例,它会因身份验证错误而失败。

实际错误: SSL_connect returned=1 errno=0 state=error: 证书验证失败(错误编号 1)(OpenSSL::SSL::SSLError)

在 Curl 中,我可以使用不安全模式,这有助于获得如下示例所示的结果:

curl --insecure -X GET -H "content-type: application/json" -H "Accept: application/json" -d '{}' "http://api.spotify.com/v1/search?type=artist&q=tycho"

我可以添加不安全或验证=false 的 "net/http" 方法的等效方法是什么。

我将使用输出在 CHEF 中附加一个食谱。

注意:正确的 URI 将与上面提到的不同 link

非常感谢任何线索。

谢谢 阿尼施

要关闭证书验证,试试这个:

require 'net/http'
require 'json'
require 'openssl'

url = 'https://api.spotify.com/v1/search?type=artist&q=tycho'
uri = URI(url)
http = Net::HTTP.new(uri.host, uri.port)

http.use_ssl     = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

response = http.request_get(uri.path).body
JSON.parse(response)
puts(response)