我正在构建一个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解码。这不是一个好的解决方案,而且似乎有点慢。有更干净的方法吗?
根据文件的大小,可以对数据进行base64编码,并将其包含在JSON负载中。
否则,您将需要使用Content-Type: multipart/form-data
。