Rails,RestClient传递二进制字体文件

时间:2017-04-21 02:54:24

标签: ruby-on-rails rest-client

我正在尝试使用restclient执行此CURL帖子

curl -v -i -X POST -H'X-Api-Secret:' - F font =@myraid.ttf APIURL

这是我到目前为止所拥有的

response = RestClient::Request.execute(
       :method => :post,
       :url => api_url,
       :headers => {:content_type => 'multipart/form-data', :accept => 'application/json', :X_Api_Secret => "xxxxxxxxx"}
    )

完全有效,直到我尝试传递这样的文件

response =RestClient::Request.execute(
       :method => :post,
       :url => api_url,
       :headers => {:content_type => 'multipart/form-data', :accept => 'application/json', :X_Api_Secret => "xxxxxxxxxx"},
       :upload => {
        :file => File.new(params[:custom_font][:font].path, 'rb')
      }
    )

然后它似乎忽略了我的标题,我收到403错误,我也尝试过定期的休息客户帖子请求,如

response = RestClient.post api_url,{:X_Api_Secret => “XXXXXX”}

但是当我尝试引入数据文件时它再次破裂。

非常感谢任何帮助,指示或建议。

1 个答案:

答案 0 :(得分:0)

好了几天的敲击之后,我最终使用了unirest,在更新到最新版本之后,它立即工作了。

response = Unirest.post api_key,
  headers:{
    "X-Api-Secret" => "xxxxx"
  },
  parameters:{
    "data" => "ccc"
  }