我正在从Ruby on Rails控制器向API发出POST请求。 API需要接收多部分表单,其中一部分是JSON,另一部分是文件。
到目前为止,这是我最好的尝试:
Api::Document.post("document_versions",
user_id: params[:user_id].to_i,
client_token: params[:client_token],
file_name: params[:file_name],
doc_name: params[:doc_name],
doc_type_id: params[:doc_type_id].to_i,
file: params[:upload].tempfile,
"Content-type" => "multipart/form-data; boundary= SomethingToSeparateParts")
在API方面,它接收
{"method":"POST","auth_token":"12345","timestamp":"2015-05-26T20:18:16Z","status_code":500,"request_url":"/v1/document_versions","duration":"3.902005ms","user_agent":"Faraday v0.9.0","request_body":"{\"user_id\":138,\"client_token\":\"12345\",\"file_name\":\"benTest.png\",\"doc_name\":\"BENTEST\",\"doc_type_id\":1,\"file\":[\"�PNG\\r\\n\",\"\\u001A\\n\",\"\\u00
...
0000\\u0000IEND�B`�\"],\"Content-type\":\"multipart/form-data; boundary= SomethingToSeparateParts\"}"}
所以我认为我将它作为multipart / form-data出现,但它只有一个部分 - 包含所有属性的JSON,包括文件。我希望JSON包含文件中的所有内容,以及要分隔到多边形的另一部分的文件,由边界分隔。我怎么能这样做?