Передача как файлового ресурса, так и тела json в одном HTTP-запросе POST - PullRequest
0 голосов
/ 03 ноября 2019

Я создаю 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 декодироватьсодержание также. Это не очень хорошее решение, и оно кажется немного медленным. Есть ли более чистый способ сделать это?

1 Ответ

1 голос
/ 03 ноября 2019

В зависимости от размера файла вы можете кодировать данные base64 и включать их в полезную нагрузку JSON.

В противном случае вам потребуется использовать Content-Type: multipart/form-data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...