如何在 ruby 2.6.5 中保留自定义 headers 大小写

How to preserve custom headers case in ruby 2.6.5

尝试使用 curl cmd 时我可以访问 api,但同样无法使用 net/http、

访问

我按照这个 link 做了字符串补丁,它在 ruby 2.2.4,

上运行良好

但最近我们迁移到 ruby 2.6.5 版本,从那以后我们又面临这个问题。

谁能帮我一下。

示例代码

token = JSON.parse(token_id)
  request = Net::HTTP::Get.new(uri)
  sso_token = token["headers"][0]["value"][0]
  request[CaseSensitiveString.new('sso_token')] = sso_token
  request["Accept"] = "application/json"
  req_options = {
      use_ssl: uri.scheme == "https"
  }
  response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
  end
  response.code
  response.body

class CaseSensitiveString < String
def downcase
  self
end
def capitalize
  self
end

结束

抱歉,我需要修补 net/http,因为我们现有的大型项目及其使用以下代码 ruby 2.5 及更高版本

module Net::HTTPHeader 
    def capitalize(name)
     name 
    end 
    private :capitalize 
end