首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多部分空载岗位,失败与“缺失起点边界”

多部分空载岗位,失败与“缺失起点边界”
EN

Stack Overflow用户
提问于 2016-09-12 14:50:03
回答 2查看 433关注 0票数 1

使用rest客户端已经有一段时间了,但对Airborne来说是新的。我遇到的问题是,我似乎无法得到与Airborne一起工作的文件上传的多部分帖子。最后,我收到了一个错误的请求:“缺失开始边界”--我的空载邮件看起来如下:

代码语言:javascript
复制
  before :all do
    fyle = File.new("e:/some-file.jpg", 'rb')
    body = {:profile => "KonflictME", :file => fyle, :multipart => true}
    post "/uploads", body, { :content_type => 'multipart/form-data' }
  end

我使用rest客户机的工作示例如下所示:

代码语言:javascript
复制
fyle = File.new("e:/some-file.jpg, 'rb')
resp = RestClient.post base_path_api << "uploads",
  {:profile => "KonflictME", :file => fyle, :multipart => true},
  {:authorization => "myTokenString}

两者之间没有太大的区别,不应该是因为休息-客户是在引擎盖下的空载。对于机载设备,配置(spec_helper.rb)中设置了base_url和标头。

有没有其他人试过用空降兵做多部分投递?上传只是我测试套件的一小部分,我有一个非机载的解决方案(只需直接使用rest客户机进行这些测试),但希望对团队的其他成员保持简单。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-20 01:56:30

机载框架基于restclient,在源代码中lib/机载/rest_client_requester.rb中有一行:

request_body = request_body.to_json if options[:body].is_a?(Hash)

这意味着您定义的每个主体都将被转换为json,并作为如下参数:

RestClient.send(method, get_url(url), request_body, headers)

但是在restclient中,您不需要考虑body的模式,无论您是想发布json还是上传一个文件。如果要上载文件,可以将上述代码更改为:

request_body = request_body.to_json if options[:body].is_a?(Hash) && options[:body].to_json["file"].nil?

若要检查您定义的主体是否包含文件,请执行以下操作。我在最近的项目中做了这个改变。

希望这能帮到你。

票数 0
EN

Stack Overflow用户

发布于 2017-12-19 21:22:25

您可以使用RestClient (机载的依赖项)使这相当容易。用散列写出平常值:

代码语言:javascript
复制
params = {
              other_param: 'Some param',
              file: File.new(Rails.root.join('spec', 'fixtures', 'sample.csv'), 'r')
          }
      }

multipart = RestClient::Payload::Multipart.new(params)
post endpoint, params: multipart.read, headers: multipart.headers
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39453127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档