簡體   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