法拉第宝石不发送文件数据



我正在使用FaradayGem 在 Ruby 中进行 API 自动化,以在我的 API 中自动上传文件。

我有以下问题:我需要将文件作为表单数据上传,但它不起作用。

这是我使用的最新语法:

conn = Faraday.new($api['upload']) do |f|
f.request :multipart
f.adapter Faraday.default_adapter
end 
formdata = { :file => Faraday::UploadIO.new('./arquivo/pequeno.pdf', 'file/pdf') }
headers = {'Content-Type' => 'multipart/form-data', 'Authorization' => 'Bearer ' + @token, 'uuidUser' => @uuid}
conn.post('/upload', formdata, headers)

另外,我无法获取响应正文或代码。我收到方法主体或代码或状态不存在的错误。

你知道我可能做错了什么吗?

我把记录器放进去进一步看看发生了什么,结果是这样的:

W, [2019-11-27T11:15:15.385754 #4208]  WARN -- : HTTP 500
D, [2019-11-27T11:15:15.386412 #4208] DEBUG -- : "x-content-type-options: nosniffnx-xss-protection: 1; mode=blockncache-control: no-cache, no-store, max-age=0, must-revalidatenpragma: no-cachenexpires: 0nx-frame-options: DENYncontent-type: application/json;charset=UTF-8ntransfer-encoding: chunkedndate: Wed, 27 Nov 2019 14:15:14 GMTnconnection: closenn{"exception":"org.springframework.web.multipart.MultipartException","status":500,"error":["Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found"]}"

我解决了这个问题。

它是在文件类型上。我没有使用'file/pdf'而是改用'application/pdf'并工作。

对于每种类型的文件,都有不同的使用方式:

pdf:
application/pdf
docx:
application/vnd.openxmlformats-officedocument.wordprocessingml.document

最新更新