ruby - 将二进制数据与法拉第

标签 ruby http faraday

我正在尝试使用 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/

相关文章:

ruby - 使用法拉第上传文件

ruby - 从 CSV 在 rails 中添加行

ruby - 当散列是最后一个参数时,括号不应该是可选的吗?

javascript - 尝试使用 JavaScript 突出显示子字符串

ruby - 覆盖 ActiveRecord::QueryMethods 中的方法

ruby-on-rails - 将 curl 调用转换为法拉第请求

ruby - 如何调试 Ruby google-api-client 的 HTTP

java - HttpClient 在 java 11 中读取响应正文

java - 与 GWT 应用程序通信的 Android 应用程序

apache - 必须重新验证此请求的 header 是否错误?