我正在尝试使用 faraday(使用默认适配器)将一些二进制数据放入 url。
我尝试使用 curl 执行的请求是:
curl -X PUT https://your_user_token:@api.80legs.com/v2/urllists/name_of_url_list -H "Content-Type: application/octet-stream" --data-binary "[\"http://www.example.com/\", \"http://www.sample.com/\", \"http://www.test.com/\"]" -i
在 Faraday 中,我可能以错误的方式设置了请求:
require 'tempfile'
tempfile = Tempfile.new(name)
tempfile.write url_list.to_s
conn = Faraday.new(url: "https://#{token}:@api.80legs.com/v2/urllists/#{name}") do |faraday|
faraday.request :multipart
faraday.response :logger
end
conn.put do |req|
req.headers['Content-Type'] = 'octet/stream'
req.body = Faraday::UploadIO.new(tempfile, 'octet/stream')
end
tempfile.close
以前有人用这个 gem 做过类似的事情吗?
吴华
最佳答案
取自https://github.com/lostisland/faraday/issues/380
require 'tempfile'
tempfile = Tempfile.new(name)
tempfile.write url_list.to_s
conn = Faraday.new(url: "https://#{token}:@api.80legs.com/v2/urllists/#{name}") do |faraday|
faraday.request :multipart
faraday.response :logger
faraday.adapter :net_http
end
conn.put do |req|
req.headers['Content-Type'] = 'octet/stream'
req.body = Faraday::UploadIO.new(tempfile, 'octet/stream')
end
tempfile.close
关于ruby - 将二进制数据与法拉第,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23916698/