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

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

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

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
分享给朋友:

相关文章

file_get_contents很慢?来看看php访问url的四种方式

file_get_contents很慢?来看看php访问url的四种方式

在使用file_get_contents方式访问URL的时候,会导致速度变的很慢,据说这是file_get_contents的一个bug,本文主要介绍PHP引入url的四种方式,其中包括file_ge...

CSS度量的单位px、rem、em、vw、vh有什么区别

CSS度量的单位px、rem、em、vw、vh有什么区别

1、px绝对单位,页面按精确像素展示2、em相对长度单位,相对于当前对象内文本的字体尺寸, 根据父元素的大小变化而变化对单位,基准点为父节点字体的大小。em是指字体高度 浏览器默认1em=16px,所...

PHP获取和操作配置文件php.ini的几个函数介绍

PHP获取和操作配置文件php.ini的几个函数介绍

1.ini_get()获取配置参数,ini_set()设置配置参数<?php echo ini_get('display_errors'); //1 //...

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

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

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

MySQL中,21个写SQL语句的好习惯

MySQL中,21个写SQL语句的好习惯

每一个好习惯都是一笔财富,本文分 SQL 后悔药、SQL 性能优化、SQL 规范优雅三个方向,分享写 SQL 的 21 个好习惯。1. 写完 SQL 先 explain 查看执行计划。【SQL 性能优...

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

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

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