调用curl方法 来实现POST请求http能实现 但是https不能实现,请问有人知道这是什么原因么,我的服务器里面没有CA证书
  一遇到https的请求 就传不过去数据

解决方案 »

  1.   

    php跟微信直接接口能用到CA证书的,应该是跟钱有关系的,比如红包等功能才用到证书验证的
      

  2.   

    这个我知道,CA证书没有 SSL加密也不需要 我的意思是微信接口现在都改版了  https请求 不能用扩展curl来做了 
      我在工作中遇到一个问题
                                   就是调用素材接口的时候
                                                 用Crul出现了41005  数据没有传到微信服务器
      

  3.   

    没有证书就要通知 curl 不做证书检查
    不然 curl 是要加查证书的
      

  4.   

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 跳过证书检查  
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
    <?php
    /** curl 获取 https 请求
    * @param String $url        请求的url
    * @param Array  $data       要發送的數據
    * @param Array  $header     请求时发送的header
    * @param int    $timeout    超时时间,默认30s
    */
    function curl_https($url, $data=array(), $header=array(), $timeout=30){    $ch = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 跳过证书检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);    $response = curl_exec($ch);    if($error=curl_error($ch)){
            die($error);
        }    curl_close($ch);    return $response;}// 调用
    $url = 'https://www.example.com/api/message.php';
    $data = array('name'=>'fdipzone');
    $header = array();$response = curl_https($url, $data, $header, 5);echo $response;
    ?>
    参考:http://blog.csdn.net/fdipzone/article/details/39611461
      

  5.   

    1.跳过https认证
    2.curl  openssl 要支持https 命令查看 curl -V
      

  6.   

    这张图是的的代码
    这张图是我测试的 
    我上传的文件数据是我本服务器的linux系统下面的  路径  加了个@
      

  7.   

    接着我调用版主   傲雪星枫  的方法  也没调出 media_id来