我正在使用JRUBY 1.9.2中的Net::HTTP::Post将数据发送到自定义服务器(不是Web服务器),该服务器希望数据以gzip压缩。
我该如何告诉Net::HTTP::Post对其要POST的数据进行gzip压缩?
我正在使用JRUBY 1.9.2中的Net::HTTP::Post将数据发送到自定义服务器(不是Web服务器),该服务器希望数据以gzip压缩。
我该如何告诉Net::HTTP::Post对其要POST的数据进行gzip压缩?
JSON发布示例:
require('zlib')
require('net/http')
require('json')
data = {my: 'data'}
uri = URI('http://example.com/api/endpoint')
headers = {
'Content-Type' => 'application/json',
'Content-Encoding' => 'gzip',
}
request = Net::HTTP::Post.new(uri, headers)
gzip = Zlib::GzipWriter.new(StringIO.new)
gzip << data.to_json
request.body = gzip.close.string
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
Zlib
来压缩数据,并添加Content-Encoding: gzip
头部。据我所知,这些都不是特定于Net::HTTP::POST
的。 - Amadan