当前位置:首页 > 技术教程 > 技术文章 > 正文内容

curl实用请求方法函数(个人用),含支付pem校验

atao4年前 (2021-02-25)技术文章4015

curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。

它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。

image.png

下面分享一个个人常用的CURL请求方法:

function https_request($url,$data=null,$header=null,$pem=null){
    // 1. 初始化一个 CURL 对象
    $curl = curl_init();
    // 2.设置你需要抓取的URL
    curl_setopt($curl, CURLOPT_URL,$url);
    // (可选)设置头 阿里云的许多接口需要在头上传输秘钥
    if(!empty($header)){
       curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    }
    // 3.https必须加这个,不加不好使(不多加解释,东西太多了)
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //对认证证书进行检验
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    // 微信支付退款用的pem校验
    if(!empty($pem)){
        curl_setopt($curl, CURLOPT_SSLCERTTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_SSLCERT, "{$pem['0']}");
        curl_setopt($curl, CURLOPT_SSLKEYTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_SSLKEY, "{$pem['1']}");
    }
    // 4.设置post数据,否则是get方式
    if (!empty($data)){
       //设置模拟post方式
       curl_setopt($curl,CURLOPT_POST,1);
       //传数据,get方式是直接在地址栏传的,这是post传参的解决方式
       curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//$data可以是数组,json
    }
    // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。1是保存,0是输出
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    // 让curl跟随页面重定向
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    // 5. 运行cURL,请求网页
    $output = curl_exec($curl);
    // 6. 关闭CURL请求
    curl_close($curl);
    return $output;
}


推荐阅读:

  1. 微信退款文章

  2. 微信支付文章

  3. 微信授权登录文章

扫描二维码推送至手机访问。

版权声明:本文由武景涛的博客发布,如需转载请注明出处。

本文链接:http://www.yizhanhongtu.cn/post/55.html

标签: curdphp
分享给朋友:

相关文章

【推荐】10个提升用户体验图像特效库

【推荐】10个提升用户体验图像特效库

1.imagehover地址:https://github.com/ciar4n/imagehover.css imagehover.css- 纯CSS3鼠标滑过图片效果动画库,44种鼠标滑过效果2....

thinkphp6资源路由解决同源策略、跨域问题。

thinkphp6资源路由解决同源策略、跨域问题。

一般开发接口资源请求服务端都会遇到跨域请求。在跨域请求的时候,明明设置的是POST请求,却请求的时候报跨域错误,检查http请求头发现不是POST请求,而是发起了OPTIONS请求。路由设置:Rout...

寶塔Linux7.5.1 永久授权专业版wget脚本[测试版禁止外传]

寶塔Linux7.5.1 永久授权专业版wget脚本[测试版禁止外传]

内部测试版本,不确保是否存在漏洞/后门等,禁止外传使用。支持正版!!本次版本更新內容:已修复无法在线更新问题(面板上点修复即可恢复最新版)已修复防火墙8.7.7问题已更新防火墙8.7.8修复已知BUG...