使用ruby中的特定http版本协议发送http请求



有一些方法可以使用特定的http版本协议在ruby中发送http请求。

我使用net/http,但默认的(可能是硬编码的)版本是1.1。

有办法转到1.0吗?

覆盖Net::HTTP::HTTPVersion(默认为'1.1')似乎有效:

require 'net/http'
Net::HTTP.send(:remove_const, :HTTPVersion) # avoid warning
Net::HTTP::HTTPVersion = '1.0'
http = Net::HTTP.new('example.com')
http.set_debug_output($stdout)
http.get('/')

输出:

<- "GET / HTTP/1.0rnAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3rnAccept: */*rnUser-Agent: RubyrnConnection: closernHost: example.comrnrn"
-> "HTTP/1.0 200 OKrn"
-> "Accept-Ranges: bytesrn"
-> "Cache-Control: max-age=604800rn"
-> "Content-Type: text/htmlrn"
-> ...

发送CCD_ 3,并且服务器用CCD_。请注意,HTTP/1.1标头(例如Host: example.com)仍然存在。

最新更新