• PHP语言开发微信公众平台(订阅号)之curl命令


    在开发过程中,经常会遇到要求用curl命令调用接口的情况

    那么,什么是curl,简单来说curl是一个利用url语法规定来传输文件和哦数据的工具,支持很多协议,如 http、ftp、telent 等,所幸php 也支持 curl

    curl虽然很复杂,但是很可以总结为四步。

    curl操作四步走:

    1.初始化 $ch = curl_init()
    2.设置参数 curl_setopt($ch,参数)
    3.执行 curl_exec($ch)
    4.关闭 curl_close($ch)
    输出错误信息: curl_error($ch)

    注意:

    1.设置参数(相关参数说明)

    常用参数

    CURLOPT_URL :请求的url地址
    CURLOPT_RETURNTRANSFER :捕获内容,但不输出(会把页面的内容完全抓取过来)
    CURLOPT_HEADER :设置头信息
    CURLOPT_POST :模拟发送 POST 请求
    CURLOPT_POSTFIELDS :发送 POST 请求时所传递的参数

    2.第一次请求时系统会报错,代表服务器需要校验SSL证书(SSL证书的问题:无法获得当地发行者证书):SSL certificate problem:unable to get local issuer certificate

    解决方法:可以通过curl禁止服务端校验SSL,代码如下:

    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);

    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);

    放到微信公众号的开发中可按照如下代码编写:

     1 <?php
     2 //返回midia_id
     3 $ch = curl_init();
     4 $url = "填写需要请求访问的地址";
     5 curl_setopt($ch,CURLOPT_URL,$url);
     6 //捕获内容但不输出
     7 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
     8 //模拟发送POST请求
     9 curl_setopt($ch,CURLOPT_POST,1);
    10 //发送数据
    11 $data = '填写需要发送的数据';
    12  //发送POST请求时传递数据
    13 curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
    14 //禁止服务器端校验SSL
    15 curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
    16 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
    17 //执行curl
    18 $outopt = curl_exec($ch);
    19 //通过判断输出错误
    20 if($outopt==false)
    21 {
    22     echo curl_error($ch);    
    23 }
    24 else
    25 {
    26     echo $outopt;    
    27 }
    28 //关闭
    29 curl_close($ch);

    注:未经允许,禁止转载

  • 相关阅读:
    6-1
    4-9
    4-5
    4-4
    4-3
    3-10
    作业三2
    作业三1
    课堂练习二
    实验三
  • 原文地址:https://www.cnblogs.com/zsczsc/p/6579548.html
Copyright © 2020-2023  润新知