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

带Basic Authorization的Curl请求无法获取API Token问题

问题排查与修复方案

你的请求无返回大概率是请求格式不匹配导致的,结合代码来看,有几个关键问题需要修正:

1. 请求体格式与Content-Type声明冲突

你设置了Content-Type: application/json,但CURLOPT_POSTFIELDS传的是数组——PHP的curl会自动把数组编码为multipart/form-data格式,和你声明的JSON类型不匹配,服务端无法解析请求,因此没有返回内容。

修复方式:将POST数组转为JSON字符串:

CURLOPT_POSTFIELDS => json_encode([
  'grant_type' => 'password'
]),

2. 错误处理逻辑存在漏洞

当前代码仅在请求无错误时关闭curl资源,发生错误时curl资源会未被释放,应该调整为无论请求成功与否都关闭资源:

$response_received = curl_exec($curl);
$curl_error = curl_errno($curl);
$curl_error_msg = curl_error($curl);
curl_close($curl); // 无论成功失败都释放资源

if($curl_error) {
    $response_received = $curl_error_msg;
}

3. 增加调试信息辅助定位问题

可以添加获取HTTP状态码的代码,帮助判断请求是否到达服务端、服务端的响应状态:

// 执行请求后添加
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
echo "<br><br>HTTP状态码: {$http_code}";

完整修正后的代码

$xurl = 'https://test-api.authtest.com/oauth2/token';
$userName = '76556789000023';
$password = '1hjgtyudkportd4451test';
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $xurl,
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => json_encode([
      'grant_type' => 'password'
    ]),
    CURLOPT_SSL_VERIFYHOST => 0,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_ENCODING => '',
    CURLOPT_USERPWD => $userName . ':' . $password,
    CURLOPT_HTTPHEADER => array( "Content-Type: application/json" ),
));
$response_received = curl_exec($curl);
$curl_error = curl_errno($curl);
$curl_error_msg = curl_error($curl);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if($curl_error) {
    $response_received = $curl_error_msg;
}

var_dump($response_received);
echo "<br><br>";
print_r("<b>response_received</b><br>".$response_received);
echo "<br><br>HTTP状态码: {$http_code}";

另外注意:CURLOPT_SSL_VERIFYHOST和CURLOPT_SSL_VERIFYPEER设置为0/false仅适合测试环境,生产环境必须开启SSL验证,避免安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:43:03