11
2025
04
00:58:10

php使用curl访问https示例

php使用curl访问https示例
今日在做一个项目,需要curl获取第三方的API,对方的API是https方式的。
之前使用curl能获取http请求,但今天获取https请求时,返回的内容总是为空,查阅资料后发现用curl访问https需要添加以下两行代码:

  1. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查   

  2. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在  

封装成一个函数如下:

  1. /** curl 获取 https 请求  

  2. * @param String $url 请求的url  

  3. * @param Array $data 要发送的数据 

  4. * @param Array $header 请求时发送的header  

  5. * @param int $timeout 超时时间,默认30s  

  6. */   

  7. function curl_https($url$data=array(), $header=array(), $timeout=30){   

  8.     $ch = curl_init();   

  9.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查   

  10.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在   

  11.     curl_setopt($ch, CURLOPT_URL, $url);   

  12.     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);   

  13.     curl_setopt($ch, CURLOPT_POST, true);   

  14.     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));   

  15.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   

  16.     curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);   

  17.     $response = curl_exec($ch);   

  18.     if($error=curl_error($ch)){   

  19.         die($error);   

  20.     }   

  21.     curl_close($ch);   

  22.     return $response;   

  23. }   

使用示例:

  1. $url = 'https://www.example.com/api/message.php';   

  2. $data = array('name'=>'fdipzone');   

  3. $header = array();   

  4.   

  5. $response = curl_https($url$data$header, 5);   

  6.   

  7. echo $response;   




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/10375.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: