【发布时间】:2021-05-28 20:07:53
【问题描述】:
有一个php脚本:
$host = API_HOST."/getawb";
$username = USERNAME;
$curl_parameters['order_ids'] = array();
$curl_options = array(
CURLOPT_URL => $host,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($curl_parameters),
CURLOPT_HTTP_VERSION => 1.0,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_USERPWD => "$username",
CURLOPT_HEADER => false
);
$curl = curl_init();
curl_setopt_array($curl, $curl_options);
$result = curl_exec($curl);
curl_close($curl);
echo $result;
我尝试使用 Nodejs 连接到服务器,但我无法使用 http 请求发布数据。 我总是收到以下错误:
"登录状态码:200
警告:implode():在 /www/wwwroot/ldtapi.plgfutar.hu/dashboard.php 第 316 行 中传递的参数无效>
警告:/www/wwwroot/ldtapi.plgfutar.hu/dashboard.php 行 中的 foreach() 提供的参数无效321
{"result":"success","event":"getawb","msg":[]}"
我的代码如下:
function getAwb() {
const url = `${protocol}//${host}${getawbpath}`
const data = JSON.stringify({
order_ids: '97621'
});
const options = {
mehod: 'POST',
auth: username,
CURLOPT_POSTFIELDS: data
};
const req = http.request(url, options, (res) => {
console.log('Login statusCode:', res.statusCode);
res.on('data', (d) => {
process.stdout.write(d);
});
res.on("error", (err) => {
reject(err);
});
});
req.write(data);
req.on('error', (e) => {
console.error(e);
});
req.end();
getAwb();
我的代码有什么问题?我应该如何将数据发布到服务器以获得所需的响应?
【问题讨论】:
-
curl 与这些错误有什么关系?他们对 PHP 代码的问题非常具体,甚至给你一个行号来查看。至于JS,为什么你认为
CURLOPT_POSTFIELDS是这个方法参数的有效属性名?
标签: php node.js request http-post