php curl put方式提交请求 参数获取不到的解决方法

第一次使用curl的put方式传参,后端获取不到参数,查了许久,发现参数要做相应处理,如果传递的是数组,那么需要用http_build_query函数转换下,转换之后的参数是name=abc&sex=1的形式。

参考链接:https://www.php.net/manual/zh/function.curl-setopt.php

最后,附上curl用GET POST PUT DELETE方式整合提交的代码

// Curl统一处理方法
function dealCurl($url,$method='GET',$data=null,$header=false){
    // 创建一个新cURL资源
    $ch = curl_init();

    // 设置URL和相应的选项
    curl_setopt($ch, CURLOPT_URL, $url);    // 要访问的网站
    curl_setopt($ch, CURLOPT_HEADER, false);    // 启用时会将头文件的信息作为数据流输出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  // 将curl_exec()获取的信息以字符串返回,而不是直接输出。
//    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 设置CURLOPT_FOLLOWLOCATION为true,则会跟踪爬取重定向页面,否则,不会跟踪重定向页面
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    if($method == 'POST'){
        curl_setopt($ch, CURLOPT_POST, true);  //发送 POST 请求
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    if($method == 'PUT'){
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    }
    if($header){
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }
    // 抓取URL并把它传递给浏览器
    $content = curl_exec($ch);
    if ($content  === false) {
        return "网络请求出错: " . curl_error($ch);
        exit();
    }
    //关闭cURL资源,并且释放系统资源
    curl_close($ch);

    return $content;
}
点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注