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

PHP CURL请求recharge.php无返回响应如何排查修复?

问题修复方案

核心问题原因

  • recharge.php 的参数判断逻辑错误:isset() 函数仅判断参数是否存在,不会判断参数值是否为空。你在请求中传递了key参数,只是值为空字符串,所以会进入if(isset($_GET['key']))的空分支,没有任何输出,自然无法拿到返回内容。
  • 请求端没有做参数转义,也没有加 CURL 错误判断,出现异常时无法快速定位问题。

修复代码

1. recharge.php 修复

调整参数判断逻辑,同时补全合法分支的返回输出:

<?php 
// 改用empty判断,同时兼容参数不存在、参数值为空的情况
if(!empty($_GET['key'])){
    // 此处为key验证通过后的业务逻辑,需补全返回内容
    echo json_encode(['status'=>'true','data'=>'参数合法','result'=>'ok']);
}else{
    echo json_encode(['status'=>'false','data'=>'API Hit Limit Exceed','result'=>'not']);
}
// 增加exit避免后续多余输出影响json格式
exit;
?>

2. 请求端代码修复

优化参数编码逻辑,增加错误排查代码,去掉冗余配置:

<?php
// recharge url
$recharge_url = "http://localhost/api_system/recharge.php";
$key = "";
$number = "9134322935";
$operators = "ada";
$amount = "asa";
// 对参数做urlencode,避免特殊字符导致参数解析错误
$FinalUrl = $recharge_url ."?key=".urlencode($key) ."&number=" . urlencode($number). "&op=" . urlencode($operators) ."&amount=" . urlencode($amount);
$durl = curl_init($FinalUrl);
curl_setopt($durl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($durl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($durl, CURLOPT_RETURNTRANSFER, true);
$resps = curl_exec($durl);
// 先判断CURL是否执行出错
if(curl_errno($durl)){
    echo "CURL错误:".curl_error($durl);
    curl_close($durl);
    exit;
}
// 打印原始返回内容,方便排查格式问题
echo "原始返回内容:";
var_dump($resps);
$res = json_decode($resps);
curl_close($durl);
echo "<pre>";
print_r($res);
?>

验证方法

你可以直接在浏览器地址栏访问拼接好的$FinalUrl地址,先确认接口本身可以正常输出JSON内容,再运行CURL请求代码做联调。如果需要测试合法分支逻辑,给$key变量赋值非空内容即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:54:02