一、传参数之冒号
注意一点,这里的header数据不是KV结构,而是一个一维数组。
看清楚,注意一点,是这样的结构:
$ch = curl_init();
$headers = [
'X-Custom-Header: value123',
'Authorization: Bearer your_token_here' // 示例
];
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.example.com/endpoint',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_HEADER => true // 开启以调试响应头
]);
$response = curl_exec($ch);
curl_close($ch);
注意第三行中间是冒号分开的,冒号,冒号!!
不是
X-Custom-Header => value123
切记!!!!
二: CURL只能传一维数组
不要传二维码的,传过去接收不了。
如果你要传二维码的请先转义再传!
// 原始二维数组
$data = [
"users" => [
["name" => "John", "age" => 30],
["name" => "Jane", "age" => 25]
],
"action" => "update"
];
// 转换为 URL 编码格式
$postData = http_build_query($data);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.example.com/endpoint",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postData,
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($ch);
curl_close($ch);
这里要使用http_build_query($data)
转义后再传。
三、接收Header
使用 $_SERVER 即可,不过接收到的全是大写的,会加上HTTP
或使用 getallheaders() 函数,取得的是不带HTTP的小写变量名。