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

原生的cURL函数而不是 tp6框架的Http类,curl_init()、curl_setopt()和curl_exec()等cURL函数

GET请求示例:

// 初始化 cURL
$ch = curl_init();

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_URL, 'https://example.com/api/resource');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// 执行 cURL 并获取返回结果
$response = curl_exec($ch);

// 关闭 cURL 资源
curl_close($ch);

// 处理返回结果
var_dump($response);

POST请求示例(带Body参数):

// 初始化 cURL
$ch = curl_init();

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_URL, 'https://example.com/api/post-endpoint');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

// 设置POST数据
$postData = [
    'key'   => 'value',
    'param' => 'another value',
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

// 执行 cURL 并获取返回结果
$response = curl_exec($ch);

// 关闭 cURL 资源
curl_close($ch);

// 处理返回结果
var_dump($response);

POST请求示例(JSON格式):

$ch = curl_init('https://example.com/api/post-endpoint');

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

// 设置POST数据为JSON格式
$jsonData = [
    'key'   => 'value',
    'param' => 'another value',
];

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($jsonData));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

// 执行 cURL 并获取返回结果
$response = curl_exec($ch);

// 关闭 cURL 资源
curl_close($ch);

// 处理返回结果
var_dump($response);
 

设置Header参数:

$ch = curl_init('https://example.com/api/resource');

// 设置Header $headers = [ 'Authorization: Bearer YourAccessToken', 'Content-Type: application/json', ];

$headers = ['Content-Type: multipart/form-data', ];

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// 执行 cURL 并获取返回结果 $response = curl_exec($ch);

// 关闭 cURL 资源 curl_close($ch);

// 处理返回结果 var_dump($response);

上传文件示例:

$ch = curl_init('https://example.com/api/upload');

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

// 上传文件
$postData = [
    'file' => new \CURLFile('/path/to/your/file.jpg'),
];

$postData = [
 'file' => new \CURLFile($fileInfo->getPathname(), $fileInfo->getMime(), $fileInfo->getOriginalName()),
];

 

$headers = ['token: ' . $token,//"token:$token"'Content-Type: multipart/form-data',
];  //headers带token
curl_setopt($ch, CURLOPT_URL, self::$ApiUploadUrl);  // 设置请求的URL
curl_setopt($ch, CURLOPT_POST, 1);                   // 设置为POST请求
curl_setopt($ch, CURLOPT_POSTFIELDS, $bodyData);    //设置POST数据
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);    // 设置HTTP请求头
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    // 设置是否将结果返回
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 禁用SSL证书验证(慎用)
// 设置HTTP请求头 curl_setopt($ch, CURLOPT_HTTPHEADER, array( 
'Content-Type: application/json; charset=utf-8', 
'Accept: application/json', 
'Cache-Control: no-cache', 
'Pragma: no-cache' )
);

'Content-Type: application/json; charset=utf-8':意义:指定了请求体的内容类型为JSON,并且字符集为UTF-8。

Accept: application/json':意义:指定客户端期望接收的响应内容类型为JSON。

'Cache-Control: no-cache':意义:要求不要缓存该请求的响应。

'Pragma: no-cache':意义:与Cache-Control: no-cache 同样,要求不要缓存该请求的响应。

  • 解释:在一些老旧的系统中,Pragma 是 HTTP/1.0 的一个头部字段,而 Cache-Control 是 HTTP/1.1 的。两者都使用 no-cache 来达到不缓存的效果。

// 执行 cURL 并获取返回结果
$response = curl_exec($ch);

// 关闭 cURL 资源
curl_close($ch);

// 处理返回结果
var_dump($response);
 

http://www.lryc.cn/news/283763.html

相关文章:

  • Win10下在Qt项目中配置SQlite3环境
  • Sentinel 轨道数据及下载
  • MD5 加密
  • 在 Excel 中将列数据用单引号括起来并添加分隔符的解决方案
  • 技术硬实力,阿里巴巴为什么要开源Spring Cloud Alibaba?
  • 2024 前端高频面试题之 HTML/CSS 篇
  • 实现将信息作为txt,pdf,图片的形式保存到电脑~
  • 服务器变矿机,该如何应对?
  • 2018年认证杯SPSSPRO杯数学建模A题(第一阶段)海豚与沙丁鱼全过程文档及程序
  • 【Webpack】预处理器 - 常用loader介绍
  • lodash 的 _.groupBy 函数是怎么实现的?
  • (2024,ViM,双向 SSM 骨干,序列建模)利用双向状态空间模型进行高效视觉表示学习
  • docker容器和常用命令
  • 【征服redis9】快速征服lua脚本
  • vue3.2二次封装antd vue 中的Table组件,原有参数属性不变
  • GBASE南大通用分享,如何修改可信上下文
  • 冻结Prompt微调LM: T5 PET (a)
  • 119 BFS和DFS解二叉树的所有路径
  • SpringBoot缓存相关注解的使用
  • SpiderFlow爬虫平台漏洞利用分析(CVE-2024-0195)
  • 计算机网络-甘晴void学习笔记
  • vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
  • Android aar包集成与报错
  • CentOS 7.9 安装图解
  • Gitea Webhook报错 webhook.ALLOWED_HOST_LIST setting
  • SQL 最大连续合格次数 最大连胜记录次数 最大连败记录次数
  • 着色器语言GLSL学习
  • C#: form 窗体的各种操作
  • “尔滨”宠粉再升级!百亿像素VR冰雪盛宴
  • redis原理(四)redis命令