我正在尝试使用RestClient将数据作为多部分上载,如下所示:
response = RestClient.post(url, io, {
:cookies => {
'JSESSIONID' => @sessionid
},
:multipart => true,
:content_type => 'multipart/form-data'
})
io
参数是一个包含我的文件的stringio,因此它来自内存而不是磁盘。服务器(TomcatServlet)无法读取多部分数据,出现错误:
org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
所以我相信restclient不是以多部分格式发送的?有人看到问题了吗?我假设问题是在ruby(客户端)端,但是如果有人认为这可能是服务器端的问题,我可以发布我的servlet(spring)代码。
我还想知道restclient会对上传的文件名使用什么,因为没有实际的文件…您可以有一个没有文件名的多部分请求吗?
最佳答案
您可以这样做,它只需要子类化StringIO
并向其添加一个非nil路径方法:
class MailIO < StringIO
def path
'message'
end
end
我刚刚检查过这个,邮件枪的api已经很糟糕了。
关于ruby - RestClient从IO分段上传,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7984902/