【问题标题】:Get HTTPS response获取 HTTPS 响应
【发布时间】:2012-03-12 14:40:23
【问题描述】:

这很好用:

require 'net/http'

uri = URI('http://api.twitter.com/1/statuses/user_timeline.json')
args = {include_entities: 0, include_rts: 0, screen_name: 'johndoe', count: 2, trim_user: 1}
uri.query = URI.encode_www_form(args)
resp = Net::HTTP.get_response(uri)
puts resp.body

但是从http 更改为https 会导致无意义的错误。我不是在问为什么错误没有意义,我只是想知道为httpsget_response 的最接近的方法是什么?

我在 Net::HTTP 文档中看到了“HTTPS”示例,但它看起来不是很令人印象深刻,并且会让我根据我的参数哈希手动组合 URL - 不好。

【问题讨论】:

    标签: ruby http https


    【解决方案1】:

    这是一个适用于 Ruby 1.9.3 的示例

    require "net/http"
    
    uri = URI.parse("https://api.twitter.com/1/statuses/user_timeline.json")
    args = {include_entities: 0, include_rts: 0, screen_name: 'johndoe', count: 2, trim_user: 1}
    uri.query = URI.encode_www_form(args)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    
    request = Net::HTTP::Get.new(uri.request_uri)
    
    response = http.request(request)
    response.body
    

    【讨论】:

    • 我链接中的文档说 在以前的 ruby​​ 版本中,您需要使用“net/https”才能使用 HTTPS。这不再是真的。 - 我们应该忽略这个吗?
    • 你是对的,要求“net/http”就可以了,我会编辑答案
    • 文档还说 require 'net/http' 也需要 'uri' 所以你不需要单独要求它。
    • 您可能想要示例中的OpenSSL::SSL::VERIFY_NONE。如果您不验证证书,为什么要使用 SSL?见jamesgolick.com/2011/2/15/verify-none..html
    猜你喜欢
    • 2011-05-13
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 2021-02-13
    相关资源
    最近更新 更多