【问题标题】:how to get json values ​in url with php如何使用php获取url中的json值
【发布时间】:2021-04-27 00:40:06
【问题描述】:

我正在尝试通过 POST 发送带有 url 的 json 值,但我没有得到任何值。

本地测试:http://127.0.0.1/test.php

我用邮递员寄到体内:

key: Token Value: xxyyz

我的服务代码:

error_reporting(E_ALL);
ini_set('display_errors', 1);
error_reporting(E_ALL);
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');

$data = file_get_contents('php://input');
$arrayData = json_decode($data);

var_dump($arrayData);

返回NULL,如何返回值?

【问题讨论】:

  • var_dump($data) 显示什么?你是如何发布到这个页面的?形式?阿贾克斯?卷曲?
  • 尝试将数据发布到模拟 API 端点,例如 beeceptor.com(还有很多其他端点),看看会发生什么。

标签: php php-7


【解决方案1】:

如果您通过 Postman 发送正文,然后单击选项 raw。然后你会在行尾看到更多选项。 (文本、Javascript、JSON)。选择 JSON 并插入您的 JSON 字符串并将其发送到您的服务器。

...我希望这会奏效。我用你的 php 代码测试过,它可以工作。

【讨论】:

  • 它适用于我的原始格式,但为什么它不适用于我的格式数据?
  • @Leoh 因为 php://input 不适用于 enctype="multipart/form-data"。您不应该将 JSON 作为文件附加到您的请求中,而是将其作为请求正文添加到 post 请求中,并设置 Content-Type 标头 (application/json)。然后它将在 php://input 中可用。那你就有问题了。使用 enctype="multipart/form-data" 后,php://input 将保持为空。
  • @Leoh 但是您可以使用 $_POST 代替 file_get_content。使用用于表单数据的密钥,您可以在服务器端获取 JSON。
猜你喜欢
  • 1970-01-01
  • 2018-03-01
  • 2013-11-27
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
  • 1970-01-01
  • 2017-06-03
相关资源
最近更新 更多