热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么PHP的cURL在发送https请求的时候可以不用设置CURLOPT_SSL_VERIFYPEER也能请求成功呢?

我是在微信公众号开发的时候遇到的。

我是在微信公众号开发的时候遇到的。



我经过百度搜索和PHP官网的各种文档得到以下结论:

  1. CURLOPT_SSL_VERIFYPEER的默认值是1

  2. CURLOPT_SSL_VERIFYHOST的默认值是2

  3. 在https请求的时候还要加上pem证书,使用CURLOPT_CAINFO来实现。

但是,我实际开发的时候发现根本不用配置上面的几个项也能请求成功,代码如下:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//下面代码用于更改公众号菜单

public function changeMenu(){

    $wad = new WeixinAdvance();

    $access_token = $wad->access_token;

    $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access_token;

    $filePath = $_SERVER['DOCUMENT_ROOT']."/../cache2/json/menuconfig.json";

    $json = file_get_contents($filePath); //这是需要传输的json数据哈



    //开始curl请求的各种设置哈

    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url);

    curl_setopt($curl, CURLOPT_HEADER, 1);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);



    curl_setopt($curl, CURLOPT_POST, 1);

    curl_setopt($curl, CURLOPT_POSTFIELDS, $json);



    $output = curl_exec($curl);

    if(curl_errno($curl)){

        echo "存在错误代码:".curl_errno($curl);

    }

    curl_close($curl);

    return $output;

}

然后我就百思不得其解了,望高人指教!


   



推荐阅读
author-avatar
每天洗脸的小媳妇_853
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有