Curl返回一个空字符串,curl_error也返回null

时间:2017-07-25 09:39:50

标签: php curl

我使用的代码是

            $request = 'sales='.$_slots['sales']['value'].'&duration='.$_slots['duration']['value'];
            $ch = curl_init();
            curl_setopt( $ch,CURLOPT_URL, $url );
            curl_setopt( $ch,CURLOPT_POST, 2 );
            curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
            curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
            curl_setopt( $ch,CURLOPT_POSTFIELDS, $request);
            $result = curl_exec($ch );
            $response = explode(chr(10),$result);
            $data = implode('', $response);
            $error = curl_error($ch)
            curl_close( $ch );

curl_error也会返回null,因此我无法跟踪其无效的原因。 $url在上面定义并且是有效的网址。我也尝试过但没有发送任何帖子,但仍然不起作用。

任何建议都会受到赞赏。谢谢

1 个答案:

答案 0 :(得分:0)

就我而言,curl仅在https URL上显示此行为,无论CURLOPT_SSL_VERIFYHOSTCURLOPT_SSL_VERIFYPEER是否设置为false进行测试,就像您在此处所做的那样。

我最近运行了yum update,它更新了Name Service Switch,这是我能想到的唯一的服务器更改。我通过yum在另一台服务器上进行了更新,该服务器开始在curl中显示相同的故障。

重新启动Apache服务解决了该问题。重启后,Https URL在curl中起作用。

我确实找到了过去发生curl / ssl / nss错误的示例,但就我而言,从未看到错误消息。

这不是一个令人满意的解决方案,因为我不了解发生此故障的原因的全貌,因此,如果发现更多问题,我将继续进行调查并添加更新。