gpt4 book ai didi

php - Advanced Rest 客户端中的数据数组响应无效

转载 作者:行者123 更新时间:2023-11-29 19:26:27 26 4
gpt4 key购买 nike

我正在尝试在 PHP 中构建一个“API”,它可以获取 JSON 数据数组,将其转换为 PHP 数据,然后更新 MySQL 数据库。将数据直接发布到脚本可以正常工作,就像通过 cURL 运行它一样,但在使用 Google Chrome 的“高级 Rest 客户端”应用程序时,我似乎无法获得响应。

我收到 Status: 200 OK 消息,但原始/解析响应仅显示“无效数据数组。”。

这是有问题的脚本:

<?php
$api = json_decode($_POST['api'], true);

$api['ExhibitorData'] = array_values($api['ExhibitorData']);
$data = $api['ExhibitorData'][0];
$exhibitor_id = $data['exhibitor_id'];

require_once 'config-api.php4'; // database connection

// get some data based on $exhibitor_id

$do_update = mysql_query("UPDATE table SET ... WHERE exhibitor_id = $exhibitor_id");
if (!$do_update)
{
http_response_code(404);
die(mysql_error());
}
$do_another_update = mysql_query("UPDATE another_table SET ... WHERE exhibitor_id = $exhibitor_id");
if (!$do_another_update)
{
http_response_code(404);
die(mysql_error());
}

$log = mysql_query("INSERT INTO log SET exhibitor_id = $exhibitor_id, ip_address = '" . $_SERVER['REMOTE_ADDR'] . "', updated_at = NOW()");

header('Content-Type: application/json; charset=utf-8');
echo json_encode(array(mysql_insert_id() => 'OK'));

mysql_close();

按照有关创建自己的 REST API(即 this one )的在线教程,我似乎做的一切都是正确的,但我似乎无法获得响应。

还有什么我应该做的吗?

编辑:这是我传递给脚本的 JSON 字符串的结构:

{
"ExhibitorData": {
"1": {
"exhibitor_id": 1,
...
}
}
}

最佳答案

我设法找出问题所在。

当您正常发布数据时,您可以通过 $_POST 变量访问它。然而,它似乎使用 cURL,尽管说它发布数据,但实际上您需要以不同的方式访问它。

更改此行:

$api = json_decode($_POST['api'], true);

对此:

$api = json_decode(file_get_contents('php://input'), true);

然后让脚本的其余部分正常运行。

关于php - Advanced Rest 客户端中的数据数组响应无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42094573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com