首页 文章

使用邮递员通过原始 json 发送 POST 数据

提问于
浏览
75

我有 Postman(在 Chrome 中没有打开的那个),我正在尝试使用原始 json 进行 POST 请求。

在 Body 选项卡中,我选择了“raw”和“JSON(application/json)”与此正文:

{
    "foo": "bar"
}

对于标题我有 1,Content-Type: application/json

在 PHP 方面,我现在正在做print_r($_POST);,我得到一个空数组。


如果我使用 jQuery 并执行:

$.ajax({
    "type": "POST",
    "url": "/rest/index.php",
    "data": {
        "foo": "bar"
    }
}).done(function (d) {
    console.log(d);
});

我得到了预期的结果:

Array
(
    [foo] => bar
)

那么为什么它不与 Postman 合作?


邮差截图:

在此输入图像描述

和标题:

在此输入图像描述

5 回答

  • 5

    我遇到了同样的问题,代码为我工作:

    $params = (array) json_decode(file_get_contents('php://input'), TRUE);
    print_r($params);
    

  • 2

    安装 Postman 原生应用,Chrome 扩展程序已被弃用。 (我在自己的窗口打开但仍然以 Chrome 应用程序运行)

  • 26

    jQuery不同,为了读取原始JSON,您需要在 PHP 中对其进行解码。

    print_r(json_decode(file_get_contents("php://input"), true));
    

    php://input是一个 read-only 流,允许您从请求正文中读取原始数据。

    $_POST是表单变量,你需要在postman中切换到form radiobutton 然后使用:

    foo=bar&foo2=bar2
    

    要使用jquery发布原始json

    $.ajax({
        "url": "/rest/index.php",
        'data': JSON.stringify({foo:'bar'}),
        'type': 'POST',
        'contentType': 'application/json'
    });
    
  • 10

    只需从二进制文件旁边的下拉列表中选中 JSON 选项即可;当你点击原始。这应该做

    技巧 synon 将 json 传递给邮递员

  • 7

    meda 的答案是完全合法的,但是当我复制代码时我得到了一个错误!

    "php://input"的某个地方有一个无效的字符(可能是其中一个引号?)。

    当我手动输入"php://input"代码时,它工作。花了一段时间才弄明白!

相关问题