当前位置: 首页 > news >正文

php curl发送get、post请求

直接上代码,如下。

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

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上传图片的请求示例

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参数说明请参考这里!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • NET WPF使用组件库HandyControl
  • 【推荐100个unity插件之34】在unity中实现和Live2D虚拟人物的交互——Cubism SDK for Unity
  • mac电脑命令行获取电量
  • oracle 如何查死锁
  • 软件测试之压力测试知识总结
  • Maven 的多种打jar包方式详细介绍、区别及使用教程——附使用命令
  • shell脚本语法
  • 硬件(驱动开发)
  • Python基础 | 在虚拟环境中安装并在指定文件夹中打开Jupyter notebook
  • Pycharm安装教程
  • CentOS 中配置 OpenJDK以及多版本管理
  • 计算机人工智能前沿进展-大语言模型方向-2024-09-13
  • 【C++笔记】八、结构体 [ 1 ]
  • ALSA ubuntu 编译
  • 如何安装和注册 GitLab Runner
  • python3.6+scrapy+mysql 爬虫实战
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Go 语言编译器的 //go: 详解
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JWT究竟是什么呢?
  • Lsb图片隐写
  • nodejs:开发并发布一个nodejs包
  • PHP 的 SAPI 是个什么东西
  • Python学习之路16-使用API
  • sublime配置文件
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 高度不固定时垂直居中
  • 关于for循环的简单归纳
  • 京东美团研发面经
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 推荐一个React的管理后台框架
  • 微服务入门【系列视频课程】
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #宝哥教你#查看jquery绑定的事件函数
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • ../depcomp: line 571: exec: g++: not found
  • .cfg\.dat\.mak(持续补充)
  • .NET Core 项目指定SDK版本
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 中让 Task 支持带超时的异步等待
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点
  • .Net环境下的缓存技术介绍
  • .so文件(linux系统)
  • .stream().map与.stream().flatMap的使用
  • /*在DataTable中更新、删除数据*/
  • @GetMapping和@RequestMapping的区别
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ IO.File ] FileSystemWatcher
  • [ABC275A] Find Takahashi 题解