Ruby Net::HTTP POST 发送数据 gzip 压缩

标签 ruby post compression gzip net-http

我在 JRUBY 1.9.2 下使用 Net::HTTP::Post 将数据发送到自定义服务器(不是 Web 服务器),它希望数据被 gzip 压缩。

我如何告诉 Net::HTTP::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

关于Ruby Net::HTTP POST 发送数据 gzip 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31712973/

相关文章:

Ruby on Rails 和使用符号调用方法基本问题

ruby - 互斥量不起作用,使用队列有效。为什么?

http - HTTP 或 HTTPS 请求中的 GET/POST 有什么区别?

javascript - 使用 Java rest api 在 javascript 中发布请求不起作用

Laravel 图像干预压缩

ruby-on-rails - 如何将当前模型保留在我的方法范围内

ruby - 如何将文件复制为临时文件?

Ruby HTTP POST - 错误

swift - 图像压缩,质量损失最小

algorithm - 大量单词的压缩和查找