【发布时间】:2017-12-20 21:33:32
【问题描述】:
作为前提,我使用 nodejs 为我公司的一个门户网站编写了一堆端点。现在我必须在我们的另一个门户中创建相同的功能,但是这个门户是用 php 构建的......而且我对 php 非常陌生。
我有什么工作,但它看起来很草率,我最终不得不在端点做一些字符串操作来得到我需要的东西。另外,我很确定我没有按照我应该的方式使用 curl。任何帮助将不胜感激。
这就是我所拥有的
$params = array('userID' => $userID, 'UnitID' => $unitid);
foreach ($params as $key => $value) {
$params .= $key . "=" . $value . "&";
}
$url = 'https://10.4.2.31:4000/api/TestCurl/' . $params;
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_POST,2);
curl_setopt($ch,CURLOPT_POSTFIELDS, $params);
$result = curl_exec($ch);
print $result;
curl_close($ch);
我在节点中得到的结果的一个例子是
{params: 'ArrayuserID=12345678&UnitID=ABC1234&'}
我的测试端点看起来像这样
app.post('/api/TestCurl/:params', UserCtrl.TestCurl);
【问题讨论】:
-
提示:
json_encode非常适合编码数据树。 -
你的 curl 说的是你的帖子,但是参数在 url 中?那你想要哪个?
-
@rtfm 无论哪种方式最干净都是首选。你会怎么做?
-
POST 用于发布数据,是“标准”;但我不清楚如果您从 API 中检索,那么您应该使用 GET
-
我将使用参数“$params”发布。目前,我只是在测试 curl 以查看是否可以正确传递节点所需的数据。所以当我到达真正的终点时,我知道它会起作用:)