You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用CURL发送REST请求时认证头项缺失问题排查

排查cURL认证头缺失问题的解决方案

我来帮你一步步排查这个认证头没生效的问题,咱们从最基础的点开始检查:

1. 先确认cURL初始化是否完整

你的代码片段里没看到curl_init()的调用——如果没有先初始化cURL句柄$curl,后面所有的curl_setopt都不会生效,自然不会发送任何自定义头。必须先添加这行:

$curl = curl_init('你的API接口完整URL');

2. 检查HTTP头的格式与拼写

虽然你的写法逻辑上没问题,但要注意两个细节:

  • 确认Api_key是服务端要求的准确字段名,很多API会用X-API-Key这种格式,一定要和官方文档核对一致
  • 确保Bearer和token之间的空格没有遗漏(你的代码里是对的,但可以再检查一遍)

3. 开启调试模式,验证实际发送的请求

添加调试选项,直接查看cURL实际发送的请求头,确认头是否真的被带上:

// 在执行请求前添加这行,开启请求头日志
curl_setopt($curl, CURLINFO_HEADER_OUT, true);

// 执行请求后打印出发送的头信息
$response = curl_exec($curl);
var_dump(curl_getinfo($curl, CURLINFO_HEADER_OUT));

如果打印结果里看不到Authorization和Api_key,说明代码设置有问题;如果能看到,那可能是服务端接收逻辑或中间代理的问题。

4. 避免重复设置HTTP头

如果你的代码里多次调用curl_setopt($curl, CURLOPT_HTTPHEADER, ...),后面的设置会完全覆盖前面的,要确保所有头都放在同一个数组里一次性设置。

完整的可运行示例代码

给你一个完整的正确实现参考,包含所有必要步骤:

$api_key = 'abc';
$token = 'xyz';
$api_endpoint = 'https://your-target-api.com/your-endpoint';
$curl_post_data = ['param1' => 'value1', 'param2' => 'value2'];

// 1. 初始化cURL句柄
$curl = curl_init($api_endpoint);

// 2. 统一设置所有HTTP头
$headers = [
    'Authorization: Bearer ' . $token,
    'Api_key: ' . $api_key,
    'Content-Type: application/x-www-form-urlencoded' // 发送表单数据用这个,JSON的话换application/json
];
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

// 3. 设置POST相关选项
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
// 如果是JSON数据,把下面这行换成 CURLOPT_POSTFIELDS => json_encode($curl_post_data)
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($curl_post_data));

// 4. 开启调试(可选,用于排查)
curl_setopt($curl, CURLINFO_HEADER_OUT, true);

// 5. 执行请求并处理结果
$response = curl_exec($curl);
if (curl_errno($curl)) {
    echo 'CURL错误:' . curl_error($curl);
} else {
    // 打印发送的请求头,确认认证信息是否存在
    echo "发送的请求头:\n";
    var_dump(curl_getinfo($curl, CURLINFO_HEADER_OUT));
    echo "\n接口响应:\n";
    print_r($response);
}

// 6. 关闭cURL句柄
curl_close($curl);

如果调试后发现请求头确实已经发送,但服务端仍提示缺失,建议检查是否有反向代理、防火墙等中间组件拦截了自定义头,或者联系API服务商确认认证逻辑细节。

内容的提问来源于stack exchange,提问作者Perino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:39:20