在php中使用curl调用https接口时返回false如何解决

本文介绍了一个在本地Windows环境下使用PHPStudy时遇到的问题,即通过cURL发送POST请求到企业微信API时返回false。文章详细解释了如何通过设置cURL选项CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST为false来解决由于SSL验证导致的问题。

在本地开发环境(window)phpstudy请求企业微信的接口时

 private function httpPost($url, $data = array())
    {
        $url = $this->host . '/' . $url;

        $data_string = json_encode($data);

        $ch = curl_init();


        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                "Content-Type: application/json; charset=utf-8",
                "Content-Length: " . strlen($data_string))
        );

        //执行并获取HTML文档内容
        $output = curl_exec($ch);
        //释放curl句柄
        curl_close($ch);

        $output = json_decode($output, true);

        return $output;
    }
 $output = curl_exec($ch);返回居然是false

我们在curl_exec函数前面通过curl_error($curl)获取错误也是 string(0) "" 空字符串。

 

 

最后经过多番查询,原来请求的是https链接 ,ssl协议,加上这两句就可以。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

 来源:在php中使用curl时返回false如何解决 - 开发技术 - 亿速云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值