【发布时间】:2021-10-01 11:29:09
【问题描述】:
大家早上好,
我在使用 TradingView 图表时遇到了一些问题,特别是保存功能。 它基本上向 mt 自定义构建 API 发送 _GET 和 _POST 请求。
我遇到的问题是我的代码没有接收到 _POST。 我在这里假设他们的代码很好,因为我看不到有关此问题的任何其他帖子。
POST 请求被发送到: example.com/1.0/chart?user=2&client=TradingGuru 然后应该通过 POST 获取图表数据,但事实并非如此。
我已经设置了一些测试如下:
if(isset($_GET)){
$formattedGET = print_r($_GET, true);
$formattedPOST = print_r($_POST, true);
Send_email("API", "A Request has been recieved : GET = $formattedGET <br /> POST = $formattedPOST" );
}
然后这会向我发送一封如下所示的电子邮件:
A Request has been recieved : GET = Array (
[client] => TradingGuru
[user] => 2
)
<br /> POST = Array
(
)
在我的网站的其余部分,我没有遇到任何其他更简单的 POST 方法的问题,我唯一能想到的就是我的文件/文件夹布局是这样的:
www/1.0/charts/index.php,当我在 chrome 上测试 GET 函数时自动更正为:example.com/1.0/charts/?client=devtg&user=2
任何关于这个的想法都将不胜感激,因为我觉得我的头撞到了一堵砖墙上已经有一段时间了。
扩展: 仍然有问题,现在已将其范围缩小到我这边, 我已经从 JS 设置了一个简单的 POST(它需要一个 Js 对象和 JSONParse 它):
var JSONs = JSON.stringify(savedWidgetContent)
let response = await new Promise(resolve => {
var xhr = new XMLHttpRequest();
xhr.open("POST", chart_storageURL+"/0.1/charts/?client=devtg&user=2"+uid);
xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xhr.setRequestHeader("Accept", "application/json; charset=UTF-8");
xhr.onload = function(e) {
resolve(xhr.response);
};
xhr.onerror = function () {
resolve(undefined);
console.error("** An error occurred during the XMLHttpRequest");
};
xhr.send(JSONs);
});
然后我有一个剥离的 PHP 代码如下:
if(isset($_POST)){
$formattedPOST = print_r($_POST, true);
$formatServer = print_r($_SERVER, true);
$File_get = file_get_contents('php://input');
Send_email("API - POST", "A Request has been recieved : POST =
$formattedPOST , $File_get" );
var_dump($_POST);
}
但是我的测试脚本不断向我发送电子邮件
POST = 数组 ( )
【问题讨论】:
-
这个“example.com/1.0/chart?user=2&client=TradingGuru 只向我们展示了 $_GET... 你能展示帖子本身吗?卷曲或其他什么?
-
您也可以随时设置webhook.site挂钩链接并将帖子发送到那里...您将立即看到是否正在发送帖子数据以及如何...也许它在正文中.. .
-
您有他们请求的文档链接吗?你绝对确定这是一个 POST 请求?既然您已经有一个测试脚本可以向您发送电子邮件,我是否可以建议您在该电子邮件中还包括
$_SERVER['REQUEST_METHOD'](以验证它是 POST),甚至可能是file_get_contents('php://input')(以防数据已提交以未解析为$_POST变量的格式)? -
@olafmoriarty - 现在我将添加这些参数我已经添加了对 Just POST 和 Just GET 的检测,它向我发送了 2 封电子邮件,但 POST 数组又是空白的。链接到 git 上的 Wiki,它可能会为您锁定,但仅应请求提供 - github.com/tradingview/charting_library/wiki/…
-
@olafmoriarty Incase git 在这里被锁定为我正在使用的函数的 Excert:保存图表发布请求:charts_storage_url/charts_storage_api_version/charts?client=client_id&user=user_id 名称:图表名称content:图表符号的内容:图表符号(例如,AA)分辨率:图表分辨率(例如,1D) RESPONSE:JSON 对象状态:ok or error id:图表的唯一整数标识符(例如,9163)
标签: php post tradingview-api