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);
复制代码

注:未经允许,禁止转载

 

posted @   5572  阅读(1863)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
主题色彩