Я пытаюсь имитировать POST-вызов из мобильного приложения с помощью POSTMAN. Я сделал следующее:
Когда я отправляю запрос и в своем серверном коде (PHP), я печатаю объект $ request, я получаю только параметры (шаг # 2), а не поле формы.
Учтите, что POSTMAN не передает данные формы, или я не смотрю в нужном месте (то есть в объекте $ request).
Я также попытался использовать "raw" вместо "form-data" и передал JSON, но тот же результат.
Я попробовал вызывать тот же API из веб-приложения, я получаю правильные значения данных формы в объекте $ request.
Любая помощь для решения проблемы, с которой я столкнулась, очень ценится. Я провел почти целый день, проходя через документ POSTMAN, и искал в Google, но не сильно продвинулся.
Глагол: POST
Верный
Params: добавлено 2 параметра (оба отображаются в URL-адресе)
Вы, вероятно, не должны этого делать
Если вы делаете запрос POST, поместите их в "данные формы" на вкладке body. (Возможно, запрос POST может содержать данные строки запроса, но это необычно).
Заголовок: добавлена пара ключ-значение - Content-Type/application/json
Определенно не делайте этого.
Вы отправляете данные, закодированные в форму, а не JSON.
Postman автоматически установит правильный тип контента, если вы его не отмените.
Body: выбран переключатель "form-data" и добавил 2 пары ключ-значение для представления ввода формы - email/[email protected] и age/18
Наверное, правильно. Кодировка по умолчанию для форм - это x-www-form-urlencoded, но PHP может обрабатывать оба.
Я получаю только параметры (шаг № 2), а не поле формы.
PHP не имеет встроенной поддержки для разбора HTTP-запросов с помощью тела сообщения JSON, поэтому он видит ваше утверждение о том, что вы отправляете JSON и ничего не предпринимаете.
Если он поддерживает JSON для этого, тогда он попытается проанализировать данные, закодированные в форме, как JSON и сбой.
Я также попытался использовать "raw" вместо "form-data" и передал JSON, но тот же результат.
Вы должны вручную декодировать JSON закодированные тела запроса.
$request->all()
. Раньше так же вернулось бы 2 параметра.
$inputJSON = file_get_contents('php://input'); $input= json_decode( $inputJSON, TRUE ); dd(json_encode($input));
Вывод "" Не уверен, что я не так делаю?