【发布时间】:2020-02-28 20:23:32
【问题描述】:
我正在构建一个 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() 函数,然后还对内容进行 json 解码。这不是一个很好的解决方案,而且似乎有点慢。有更清洁的方法吗?
【问题讨论】:
-
上传文件时,内容类型不应该是
multipart/form-data吗? -
我认为cURL在检测到
-F参数时会自动添加它 -
不确定当你明确提到
type=application/json时它是否会覆盖类型。
标签: php json laravel http curl