php curl 模拟登陆https

curl 模拟登陆https 代码如下:
         $url = "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
         $cookie_file = tempnam('./tmp','cookie');
            $headerArray = array(
            'Accept:application/json, text/javascript, */*',
            'Content-Type:application/x-www-form-urlencoded',
            'Referer:https://mp.weixin.qq.com/'
            );
          $ch = curl_init();
            curl_setopt($ch,CURLOPT_URL,$url);
            // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            // 从证书中检查SSL加密算法是否存在
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//关闭直接输出
            curl_setopt($ch,CURLOPT_POST,1);//使用post提交数据
            curl_setopt($ch,CURLOPT_POSTFIELDS,$post);//设置 post提交的数据
            curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36');//设置用户代理
            curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray);//设置头信息
           // curl_setopt($ch, CURLOPT_SSLVERSION, 3); //设定SSL版本
            curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);//设置cookie的保存目录,这里很重要,你懂的(cookie你都不存,你以为你是麻花腾啊!)
            $loginData = curl_exec($ch);//这里会返回token,需要处理一下。
            if (curl_errno($ch)) {  
                echo 'Errno'.curl_error($ch);
            }
           curl_close($ch);

如果没有设置ssl版本

报错如下:35-error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112);

使用的SSL版本(2 或 3)。默认情况下PHP会自己检测这个值,尽管有些情况下需要手动地进行设置。 

curl_setopt($ch, CURLOPT_SSLVERSION, 3);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值