PHP——封装Curl请求方法支持POST | DELETE | GET | PUT 等

前言

Curl:  https://www.php.net/manual/en/book.curl.php

curl_setopt: https://www.php.net/manual/en/function.curl-setopt.php

代码

注释应该很详细了吧,不懂的可以评论或者看上面手册。

设置桥接抓包需要配合抓包工具使用。

/**
 * 多种请求方法封装
 * 
 * @param string   $url      请求地址
 * @param string   $method   请求方式
 * @param array    $header   请求头
 * @param array    $data     请求体
 * 
 * @return mixd 
 */
function Curl_request($url, $method = 'POST', $header = ["Content-type:application/json;charset=utf-8", "Accept:application/json"], $data = [])
{
    
    $method = strtoupper($method);
    //初始化
    $ch = curl_init();
    //设置桥接(抓包)
    //curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888');
    //设置请求地址
    curl_setopt($ch, CURLOPT_URL, $url);
    // 检查ssl证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    // 从检查本地证书检查是否ssl加密
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $url);
    //设置请求方法
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    //设置请求头
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    //设置请求数据
    if (!empty($data)) {
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    //设置curl_exec()的返回值以字符串返回
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $res = curl_exec($ch);
    curl_close($ch); 
    return $res;
}

 

上一篇:记一次php curl导致的故障


下一篇:vue.js的手脚架vue-cli项目搭建的步骤