我想知道这一点,因为我正在使用PHP脚本中的cURL调用节点js API之一,我在服务器上做了console.log()
,它显示接收到的有效负载和返回的响应如下,但在我的PHP中脚本,它将cURL错误显示为Empty reply from server
PHP代码:
$payload = json_encode(array('message_id' => 'test'));
$ch = curl_init(URL);
curl_setopt($ch, CURLOPT_URL, URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json', 'Content-Length: ' . strlen($payload)));
// curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
$response = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_err = curl_error($ch);
$info = curl_getinfo($ch);
服务器响应:
{ message_id: 'test' }
Executing (default): SELECT count(*) AS `count` FROM `messagenumbermaster` AS `messagenumbermaster` WHERE `messagenumbermaster`.`messagenumber` = 'test';
输入然后返回值:新建
我还收到了[http_code] => 0
中的curl_getinfo()
我进行了很多搜索,但是没有运气,请帮助我。
Node js代码:
module.exports.checkDuplicate = {
auth: false,
validate: {
payload: joi.object().required().keys({
message_id: joi.string().required()
})
},
handler: ((req, res) => {
console.log(req.payload);
try {
return emailrdb.messagenumbermaster.count({
where: {
messagenumber: req.payload.message_id
}
})
.then(count => {
console.log('in then');
if(count > 0){
//duplicate
console.log('resturned value: duplicate');
return 'duplicate';
}else{
console.log('resturned value: New');
return 'New';
}
})
} catch (err) {
console.log("checkDuplicate: ErrorLog", err);
Log.createLog(`${new Date()}- checkDuplicate error: ${err}`);
throw boom.boomify(err.message);
}
})
};
从RESTer尝试时,我收到响应。 注意:我正在从本地主机运行PHP和Node
答案 0 :(得分:1)
由于您要从其他范围调用browser.find_element_by_xpath("//input[@id='usertext']").send_keys("help")
,因此您将从return 'New';
返回,但是hapi处理程序仍在等待未被调用的返回。
您不能通过从内部范围执行then...
来达到外部范围。
因此,请检查以下代码:
return