繁体   English   中英

在单个 HTTP POST 请求中同时传递文件资源和 json 主体

[英]Passing both a file resource and a json body in a single HTTP POST request

我正在构建一个 REST API 并且我有一个端点,我需要传递一个文件资源和一个 JSON 主体。 显然我不能这样做:

You can only select one HTTP request method! You asked for both POST.

在 cURL 请求中,我收到了这个错误,我同时提供了表单字段和这样的正文:

curl -X POST "http://127.0.0.1/path" -F "resource=@img.jpg" -d "@requestBody.json"

如果我想让它工作,我需要将我的请求正文作为表单字段本身传递:

curl -X POST "http://127.0.0.1/path" -F "resource=@img.jpg" -F "myRequestBody=@requestBody.json;type=application/json"

问题是,为了得到这个,我需要使用file_get_contents() function 然后 json 解码内容。 这不是一个很好的解决方案,而且似乎有点慢。 有更清洁的方法吗?

根据文件的大小,您可以 base64 对数据进行编码并将其包含在您的 JSON 有效负载中。

否则,您将需要使用Content-Type: multipart/form-data

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM