如何在 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
尝试使用 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