Rails 没有 ssl 验证和基本身份验证的 http GET 请求
Rails http GET request with no ssl verification and basic auth
我正在尝试发出标题中指定的 http get 请求。
我写的内容:
uri = URI.parse("https://myaddress.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
@data = http.get(uri.request_uri)
请求已发送到我希望发送的位置,并且我收到了未经授权的响应(正如预期的那样,因为我没有指定基本身份验证)。
我试过了
http.basic_auth 'user', 'pass'
但是我的http变量的类型没有这样的方法。
如何添加授权详细信息?
更新:我尝试使用类似这里 RUBY - SSL, Basic Auth, and POST 的东西,但是在用 Get 替换 Post 之后,我不能使用 'use_ssl',也不能使用 'verify_mode' 属性(我没有这样的属性错误)。
更新 2:我发现我可以在 Net::HTTP object 上设置 'use_ssl' 属性,在 Net::HTTP 上设置 'basic_auth' ::得到object。
现在的问题是如何让它们协同工作?
好吧,我终于找到了答案。也许这会对其他人有所帮助:
url = URI.parse('https://myaddress.com')
req = Net::HTTP::Get.new(url.path)
req.basic_auth 'user', 'pass'
sock = Net::HTTP.new(url.host, url.port)
sock.use_ssl = true
sock.verify_mode = OpenSSL::SSL::VERIFY_NONE
resp = sock.start {|http| http.request(req) }
我正在尝试发出标题中指定的 http get 请求。 我写的内容:
uri = URI.parse("https://myaddress.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
@data = http.get(uri.request_uri)
请求已发送到我希望发送的位置,并且我收到了未经授权的响应(正如预期的那样,因为我没有指定基本身份验证)。
我试过了
http.basic_auth 'user', 'pass'
但是我的http变量的类型没有这样的方法。 如何添加授权详细信息?
更新:我尝试使用类似这里 RUBY - SSL, Basic Auth, and POST 的东西,但是在用 Get 替换 Post 之后,我不能使用 'use_ssl',也不能使用 'verify_mode' 属性(我没有这样的属性错误)。
更新 2:我发现我可以在 Net::HTTP object 上设置 'use_ssl' 属性,在 Net::HTTP 上设置 'basic_auth' ::得到object。 现在的问题是如何让它们协同工作?
好吧,我终于找到了答案。也许这会对其他人有所帮助:
url = URI.parse('https://myaddress.com')
req = Net::HTTP::Get.new(url.path)
req.basic_auth 'user', 'pass'
sock = Net::HTTP.new(url.host, url.port)
sock.use_ssl = true
sock.verify_mode = OpenSSL::SSL::VERIFY_NONE
resp = sock.start {|http| http.request(req) }