来自服务器的PHP / CURL空回复

时间:2017-04-03 00:34:22

标签: php curl post

我在我的服务器上运行了一个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


访问域时的默认页面:端口

Default Page when visiting domain:port


应该返回的示例: https://rbx.shopping/Bot

1 个答案:

答案 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');