php curl发送get、post请求

news/2024/9/22 20:01:49/

直接上代码,如下。

注意请求参数为json格式的话,需要 json_encode($params)

php">function doRequest($url, $method = 'GET', $params = [])
{$ch = curl_init();//设置抓取的urlcurl_setopt($ch, CURLOPT_URL, $url);//不设置头文件的信息作为数据流输出curl_setopt($ch, CURLOPT_HEADER, 0);//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置curl允许执行的最长秒数curl_setopt($ch, CURLOPT_TIMEOUT, 60);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//判断是否为post请求if ($method == 'POST') {//设置post方式提交curl_setopt($ch, CURLOPT_POST, 1);//全部数据使用HTTP协议中的"POST"操作来发送。//要发送文件,在文件名前面加上@前缀并使用完整路径。//这个参数可以通过urlencoded后的字符串类似’para1=val1¶2=val2&…’或使用一个以字段名为键值,字段数据为值的数组。//如果value是一个数组,Content-Type头将会被设置成multipart/form-data。curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
//        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));//参数是json的话就不需要这个//设置post发送的参数为json格式--注意这里如果不需要json格式 可以去掉。curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',//只适用于请求参数为json的时候'Content-Length:' . strlen($params),//只适用于请求参数为json的时候'Cache-Control: no-cache','Pragma: no-cache'));}$response = curl_exec($ch);//可用来检查curl错误
//    $errorNo = curl_errno($curl);
//    if ($errorNo) {
//        return $errorNo;
//    }curl_close($ch);return json_decode($response, true);
}

再来一个curl模拟formdata上传图片的请求示例

php">function()
{$filePath = './image.png'; //本地图片路径//构建multipart/form-data的数据$data = array('debug' => 1,'file' => new CURLFile($filePath, 'image/png', 'image.png'));//发送post请求$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$response = curl_exec($ch);if (curl_errno($ch)) {
//        echo 'Error:' . curl_error($ch);return false;}curl_close($ch);return json_decode($response, true);
}

CURL参数说明请参考这里!!


http://www.ppmy.cn/news/1528990.html

相关文章

华为HarmonyOS地图服务 5 - 利用UI控件和手势进行地图交互

场景介绍 本章节将向您介绍如何使用地图的手势。 Map Kit提供了多种手势供用户与地图之间进行交互,如缩放、滚动、旋转和倾斜。这些手势默认开启,如果想要关闭某些手势,可以通过MapComponentController类提供的接口来控制手势的开关。 接口…

KDD 2024论文分享┆STAMP:一种基于时空图神经网络的微服务工作负载预测方法

论文分享简介 本推文详细介绍了一篇最新论文成果《Integrating System State into Spatio Temporal Graph Neural Network for Microservice Workload Prediction》,论文的作者包括:上海交通大学先进网络实验室: 罗旸、高墨涵、余哲梦,高晓沨…

ClickHouse 与 Quickwit 集成实现高效查询

1. 概述 在当今大数据分析领域,ClickHouse 作为一款高性能的列式数据库,以其出色的查询速度和对大规模数据的处理能力,广泛应用于在线分析处理 (OLAP) 场景。ClickHouse 的列式存储和并行计算能力使得它在处理结构化数据查询时极具优势&…

Qt多元素控件——QListWidget

文章目录 Qt多元素控件QListWidget核心属性、方法和信号使用演示 Qt多元素控件 Qt中提供了一些多元素控件: xxxView和xxxWidget的关系: xxxView是更底层的实现xxxWidget是基于xxxView封装而来的 此处的xxxView是MVC结构的典型实现,MVC是软件…

(已解决)vscode如何传入argparse参数来调试/运行python程序

文章目录 前言调试传入参数运行传入参数延申 前言 以前,我都是用Pycharm专业版的,由于其好像在外网的时候,不能够通过VPN来连接内网服务器,我就改用了vscode。改用了之后,遇到一个问题,调试或者运行python…

【论文阅读】Benchmarking Retrieval-Augmented Generation for Medicine

论文:https://arxiv.org/abs/2402.13178 代码: GitHub - Teddy-XiongGZ/MIRAGE: Official repository of the MIRAGE benchmark GitHub - Teddy-XiongGZ/MedRAG: Code for the MedRAG toolkit 研究背景: 系统地评估医用rag QA系统&#xff0…

使用Rust直接编译单个的Solidity合约

这里写自定义目录标题 使用Rust直接编译单个的Solidity合约前言预备知识准备工作示例 使用Rust直接编译单个的Solidity合约 前言 我们知道,我们平常开发Solidity智能合约时一般使用Hardhat框架,但是如果你是一个Rustacean (这是由 “Rust” 和 “crust…

通过springcloud gateway优雅的进行springcloud oauth2认证和权限控制

代码地址 如果对你有帮助请给个start,本项目会持续更新,目标是做一个可用的快速微服务开发平台,成为接私活,毕设的开发神器, 欢迎大神们多提意见和建议 使用的都是spring官方最新的版本,版本如下&#xff1…