Dra*_*gos 1 ruby-on-rails basic-authentication
我正在尝试按照标题中的说明进行 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)
Run Code Online (Sandbox Code Playgroud)
请求被发送到我想要发送的地方,我收到一个未经授权的响应(正如预期的那样,因为我没有指定基本身份验证)。
我试过了
http.basic_auth 'user', 'pass'
Run Code Online (Sandbox Code Playgroud)
但是对于我的 http 变量的类型没有这样的方法。如何添加身份验证详细信息?
更新:我尝试在这里使用RUBY - SSL、Basic Auth 和 POST 之类的东西,但是在用 Get 替换 Post 之后,我无法使用“use_ssl”和“verify_mode”属性(我没有得到这样的属性错误)。
更新 2:我发现我可以在 Net::HTTP 对象上设置“use_ssl”属性,在 Net::HTTP::Get 对象上设置“basic_auth”。现在的问题是我怎样才能让它们一起工作?
好吧,我最终找到了答案。也许这会帮助其他人:
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) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |