Rails http请求与正文文件

时间:2018-08-23 16:18:01

标签: ruby-on-rails http ssl ruby-on-rails-5

我正在使用trello api将图像附加到卡上。文档说

require 'uri'
require 'net/http'

url = URI("https://api.trello.com/1/cards/id/attachments")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body

放置密钥和令牌后,我尝试上载文件,二进制数据进入url本身,不仅看起来太丑陋,而且因为请求时间太长而无法使用。我曾尝试使用代码中的multipart和rest客户gem来上传文件并将其附加到trello卡,但是每次遇到诸如错误请求或SSL错误之类的错误时,有人可以给我一段真正有效的代码吗?谢谢 实际上,我是通过AJAX发送图像数据的(我是从charjs视图生成的),所以发送的数据是二进制的,如果解决方案从二进制数据上传图像会更好。

1 个答案:

答案 0 :(得分:0)

他们的文档确实鼓励您将整个编码的文件对象添加到URL中,我也觉得这很丑陋。我想知道将它添加到POST正文中是否可行?试试这个:

request = Net::HTTP::Post.new(url)
request.set_form_data({file: put_encoded_file_contents_here})