Send POST data via raw JSONwith Postman(使用 Postman 通过原始 JSON 发送 POST 数据)
问题描述
我有 Postman(不能在 Chrome 中打开的那个),我正在尝试使用原始 JSON 发出 POST 请求.
I've got Postman (the one that doesn't open in Chrome) and I'm trying to do a POST request using raw JSON.
在正文"选项卡中,我有原始"选项卡.选择和JSON(应用程序/json)";用这个身体:
In the Body tab I have "raw" selected and "JSON (application/json)" with this body:
{
"foo": "bar"
}
对于我有 1 的标题,Content-Type: application/json
For the header I have 1, Content-Type: application/json
在 PHP 方面,我现在只是在做 print_r($_POST);
,我得到一个空数组.
On the PHP side I'm just doing print_r($_POST);
for now, and I'm getting an empty array.
如果我使用 jQuery 并且这样做:
If I use jQuery and do:
$.ajax({
"type": "POST",
"url": "/rest/index.php",
"data": {
"foo": "bar"
}
}).done(function (d) {
console.log(d);
});
我得到了预期:
Array
(
[foo] => bar
)
那么为什么不使用 Postman 呢?
So why isn't it working with Postman?
邮递员截图:
和标题:
推荐答案
与 jQuery
不同,为了读取原始 JSON
,您需要在 PHP 中对其进行解码.
Unlike jQuery
in order to read raw JSON
you will need to decode it in PHP.
print_r(json_decode(file_get_contents("php://input"), true));
php://input
是一个只读流,允许您从请求正文中读取原始数据.
php://input
is a read-only stream that allows you to read raw data from the request body.
$_POST
是表单变量,您需要切换到 postman
中的 form
单选按钮,然后使用:
$_POST
is form variables, you will need to switch to form
radiobutton in postman
then use:
foo=bar&foo2=bar2
使用 jquery
发布原始 json
:
$.ajax({
"url": "/rest/index.php",
'data': JSON.stringify({foo:'bar'}),
'type': 'POST',
'contentType': 'application/json'
});
这篇关于使用 Postman 通过原始 JSON 发送 POST 数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 Postman 通过原始 JSON 发送 POST 数据
- 正确分离 PHP 中的逻辑/样式 2021-01-01
- Mod使用GET变量将子域重写为PHP 2021-01-01
- 如何定位 php.ini 文件 (xampp) 2022-01-01
- SoapClient 设置自定义 HTTP Header 2021-01-01
- PHP Count 布尔数组中真值的数量 2021-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- 没有作曲家的 PSR4 自动加载 2022-01-01
- Laravel 仓库 2022-01-01
- 带有通配符的 Laravel 验证器 2021-01-01
- 从 PHP 中的输入表单获取日期 2022-01-01