详细信息 您现在的位置是:首页 > php

使用curl发起https请求

来源: 发布时间:2021-06-09 515 人已围观

摘要使用curl发起https请求

Get方式:

     //初始化
     $curl  =  curl_init ( ) ;
     //设置抓取的url
     curl_setopt ( $curl , CURLOPT_URL ,  'http://www.baidu.com' ) ;
     //设置头文件的信息作为数据流输出
     curl_setopt ( $curl , CURLOPT_HEADER ,  1 ) ;
     //设置获取的信息以文件流的形式返回,而不是直接输出。
     curl_setopt ( $curl , CURLOPT_RETURNTRANSFER ,  1 ) ;
     //执行命令
     $data  =  curl_exec ( $curl ) ;
     //关闭URL请求
     curl_close ( $curl ) ;
     //显示获得的数据
     print_r ( $data ) ;

Post方式:

     //初始化
     $curl  =  curl_init ( ) ;
     //设置抓取的url
     curl_setopt ( $curl , CURLOPT_URL ,  'http://www.baidu.com' ) ;
     //设置头文件的信息作为数据流输出
     curl_setopt ( $curl , CURLOPT_HEADER ,  1 ) ;
     //设置获取的信息以文件流的形式返回,而不是直接输出。
     curl_setopt ( $curl , CURLOPT_RETURNTRANSFER ,  1 ) ;
     //设置post方式提交
     curl_setopt ( $curl , CURLOPT_POST ,  1 ) ;
     //设置post数据
     $post_data  =  array (
         "username"  =>  "coder" ,
         "password"  =>  "12345"
         ) ;
     curl_setopt ( $curl , CURLOPT_POSTFIELDS ,  $post_data ) ;
     //执行命令
     $data  =  curl_exec ( $curl ) ;
     //关闭URL请求
     curl_close ( $curl ) ;
     //显示获得的数据
     print_r ( $data ) ;

使用curl如果想发起的https请求正常的话有2种做法:

方法一、设定为不验证证书和host。

在执行curl_exec()之前。设置option

$ch = curl_init();

......


curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);


 


方法二、设定一个正确的证书。


本地ssl判别证书太旧,导致链接报错ssl证书不正确。


我们需要下载新的ssl 本地判别文件


http://curl.haxx.se/ca/cacert.pem


放到 程序文件目录


curl 增加下面的配置


   curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); ;

   curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/cacert.pem');


大功告成



站点信息

  • 电话:15226178738
  • QQ:1697915848
  • 邮箱:1697915848@qq.com