如何在没有身份验证的情况下解析 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)
我的代码,
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)