我在我的服务器上运行了一个NodeJS应用程序,我有一个CURL,它向我服务器上的应用程序端口提交一个发布请求。如果我访问PHP页面,我通常可以这样做,但尝试将其作为命令行执行是一个不同的故事。它一直返回HTTP响应代码0,错误是“从服务器清空回复”
PHP Curl(OOP)[$ this-> domain = http://domain:port,$ url = / path / to / something]:
protected function post($url, $data)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0'
));
curl_setopt($ch,CURLOPT_URL,$this->domain.$url);
curl_setopt($ch,CURLOPT_POST,count($data));
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
//error_log(curl_error($ch));
return $result;
}
命令行执行:
curl https://rbx.shopping/Secure/IPNCron.php
访问域时的默认页面:端口
应该返回的示例: https://rbx.shopping/Bot
答案 0 :(得分:0)
尝试添加cookie jar:
$ckfile = tempnam (sys_get_temp_dir(), rand().'cookiename');
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
另外添加:
curl_setopt($handle, CURLOPT_ENCODING, 'identity');