Отправка параметров POST с помощью Postman не работает, но отправка параметров GET
Я пытаюсь протестировать простую страницу PHP, используя расширение Postman. Когда я отправляю параметры URL, script работает отлично (например, переменные доступны в параметре $_REQUEST
). Когда я отправляю их как параметры x-www-form-urlencoded
, параметр $_REQUEST
содержит только PHPSESSID
.
script:
<?php
var_export($_REQUEST);
?>
Когда я отправляю параметры URL, $_REQUEST
включает их:
![URL parameters]()
Но когда я отправляю их как переменные POST
, $_REQUEST
не включает их:
![enter image description here]()
Что мне не хватает?
Ответы
Ответ 1
Я устанавливал URL-адрес в Postman как http://
, но Apache перенаправлялся на https://
, и каким-то образом переменные POST отбрасывались на этом пути.
После того, как я изменил его на https://
, переменные POST работали правильно.
Смотрите также: fooobar.com/questions/130767/...
Ответ 2
Я столкнулся с той же проблемой в PostMan и Advance REST Client. Я проверил через скрипача и обнаружил, что моя полезная нагрузка не конвертируется в формат JSON.
Я передаю свои данные в Body как x-www-form-urlencoded
![введите описание изображения здесь]()
Вы можете исправить это, используя Content-Type как application/x-www-form-urlencoded в заголовке запроса.
![введите описание изображения здесь]()
Ответ 3
Просто используйте Body Tab
и введите post parameters
там. Обратите внимание, что Body Tab
отключен, если выбран Get
.
Ответ 4
Проверьте содержимое своего содержимого в заголовке. У меня возникла проблема с отправкой raw JSON и моего содержимого в качестве приложения /json в заголовок POSTMAN.
мой php видел jack все в сообщении запроса. Это произошло только после того, как я изменил тип контента на
application/x-www-form-urlencoded с JSON в текстовом поле RAW и его тип как JSON, мое приложение PHP начало видеть данные сообщения. не то, что я ожидал при работе с сырым json, но теперь он работает для того, что мне нужно.
![postman POST request]()
Ответ 5
Когда вы отправляете параметры с помощью x-www-form-urlencoded
, вам нужно установить заголовок для запроса, используя Content-Type
в качестве application/x-www-form-urlencoded
Ответ 6
У меня была такая же проблема. Чтобы исправить это, я добавил следующие заголовки:
Content-Type: application/json
Мне пришлось вручную добавить тип содержимого, даже если у меня также был тип "json" в параметрах поля исходного сообщения.
Ответ 7
Извините, если это поток Necromancy, но это все еще актуально сегодня, особенно с тем, сколько API используется!
У меня возникла проблема: я не знал, что в столбце "Ключ" необходимо указать: " Тип контента "; Я думал, что это был ключ пользователя, когда он вернулся в запросе, а это не так.
Так что что-то простое может помочь вам, я думаю, Почтальон мог бы лучше написать эту колонку, потому что мне даже не пришлось читать Документацию, когда дело дошло до использования Fiddler; тогда как я сделал с Почтальоном.
![Postman picture]()
Ответ 8
Для меня сервер ожидал HTTPS-запросов, но я не указал это в URL-адресе. Крюк достигнет сервера, но тело будет пустым.
Ответ 9
Иногда проблема с версией в "Почтателе":
У меня такая же проблема. При отправке данных используется самая старая версия почтальона. В то время я получил пустые данные json на стороне сервера.
И Я исправил эту проблему, как только я удалю старую версию почтмана и установил ее с последней версией.
Ответ 10
Я только что установил самую новую версию Postman, и я до сих пор не могу заставить мои переменные записи быть прочитанными моим php-скриптом. Я тестировал с формой HTML, но код PHP в порядке. На почтальоне я пробовал body, form, json, все... всегда получаю пустой $ _POST.
Любые другие известные ошибки? Может быть, это "макинтош"?
Ответ 11
Имела ту же проблему, это было связано с сообщением заголовка от почтальона, которое не соответствовало данным, которые я отправлял. Отправлял данные формы и заголовок, где был установлен x-www-form-urlencoded, поэтому он отображал пустые данные в контроллере/функции...
Очень глупая ошибка...