最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何制作并将具有多个键的对象传递到php curl http帖子中

运维笔记admin10浏览0评论

如何制作并将具有多个键的对象传递到php curl http帖子中

如何制作并将具有多个键的对象传递到php curl http帖子中

作为前提,我使用nodejs为我公司的一个门户网站写了一堆端点。现在我必须在我们的另一个门户网站中创建相同的功能,但是这个门户网站是用PHP构建的...而且我对php非常新。

我的工作原理,但它似乎很草率,我最终不得不在端点做一些字符串操作,以了解我需要的东西。另外,我很确定我没有按照我应该的方式使用curl。任何帮助,将不胜感激。

这就是我所拥有的

$params = array('userID' => $userID, 'UnitID' => $unitid);
foreach ($params as $key => $value) {
    $params .= $key . "=" . $value . "&";
}

$url = ':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);
回答如下:

您可以使用http_build_query()将数组转换为与curl一起使用的格式。

对于POST请求:

$params = array('userID' => $userID, 'UnitID' => $unitid);
$fields_string = http_build_query($params);
// ...
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

您给出的输出的原因是您将$params定义为数组,但随后将其连接为foreach循环内的字符串。如果在循环中使用了不同的变量名,那么您的方法将起作用。

发布评论

评论列表(0)

  1. 暂无评论