【问题标题】:Rails http GET request with no ssl verification and basic auth没有 ssl 验证和基本身份验证的 Rails http GET 请求
【发布时间】:2015-12-17 10:59:52
【问题描述】:

我正在尝试按照标题中指定的方式发出 http 获取请求。 我写的:

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 对象上设置“use_ssl”属性,在 Net::HTTP::Get 对象上设置“basic_auth”。 现在的问题是如何让它们一起工作?

【问题讨论】:

    标签: ruby-on-rails basic-authentication


    【解决方案1】:

    好吧,我最终找到了答案。也许这会对其他人有所帮助:

    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) }
    

    【讨论】:

      猜你喜欢
      • 2017-07-23
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 2016-09-29
      相关资源
      最近更新 更多