我正在 ruby 中执行 http 请求:
http = Net::HTTP.new(uri.host, uri.port)
req = Net::HTTP::Post.new(uri.path)
req.body = payload
req['customeheader'] = 'xxxxxxxxx'
http.set_debug_output $stdout
我已打开调试,当发布请求时,我可以看到标题被发布为:
Customheader: xxxxxxxxx
无论如何,有没有办法阻止这个,我发布到的第三方服务器给出了错误,因为标头名称不正确 - 它正在等待customheader:
虽然可以对 Net::HTTPHeader 和 Net:HTTPGenericRequest 进行猴子修补以删除小写字母和大写字母,但我发现了一种不同的方法,它允许选择性区分大小写,而不是强制所有内容。
解决方案:
class CaseSensitiveString < String
def downcase
self
end
def capitalize
self
end
end
然后 CaseSensitiveString.new('keyname') 在区分大小写时创建密钥。使用其他键的字符串/符号来维持现有的行为。这比猴子修补要简单得多,并且可以与 Rest-client 库以及 Net::HTTP 很好地配合。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)