0

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

我按照这个链接用Ruby的Net:HTTP在HTTP标头中保留大小写做了字符串补丁,它与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

结尾

4

1 回答 1

0

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

module Net::HTTPHeader 
    def capitalize(name)
     name 
    end 
    private :capitalize 
end
于 2020-07-24T09:26:32.560 回答