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

POST API请求异常排查:无响应且未出现在API日志中

问题排查与修复方案

你的POST请求无响应且未出现在API日志中,核心问题集中在请求参数构建逻辑和POST请求的规范处理上,以下是具体问题和修复方法:

1. 地址参数构建完全错误

你用单引号定义$address字符串,PHP单引号不会解析内部变量,导致$sub_premises等变量名直接被当作固定字符串,而非实际变量值。后续又调用json_encode(),把这个错误的字符串再次转成JSON格式,最终拼接在URL里的内容完全不符合API要求。

修复方式:

先构建PHP数组,再转成标准JSON字符串:

$addressData = [
    "sub_premises" => $sub_premises,
    "premises_name" => $premises_name,
    "thoroughfare_number" => $thoroughfare_number,
    "thoroughfare_name" => $thoroughfare_name,
    "post_town" => $post_town,
    "postcode" => $postcode,
    "district_id" => $district_id,
    "nad_key" => $nad_key
];
$addressJson = json_encode($addressData);

2. POST请求参数错误拼接在URL路径中

POST请求的参数应该放在**请求体(body)**里,而非URL路径。你把地址参数直接拼到URL里,会导致API无法识别请求结构,甚至直接拒绝请求,因此日志中看不到相关记录。

修复方式:

调整$request数组结构,将请求体参数单独存放:

$request = array();
$request['apiUsername'] = 'XXXXXXX';
$request['apiPassword'] = 'XXXXXXX';
$request['encryption']   = 'SHA-512';
$request['platform']     = 'LIVE';
$request['method']       = 'POST';
$request['url'] = "/broadband/availability";
// 新增请求体参数字段
$request['body'] = $addressJson;

同时要确保get_plan()方法能正确读取body参数,发送POST请求时将其作为请求体传递,并设置正确的请求头(如Content-Type: application/json)。

3. 冗余代码清理

代码中重复定义了$district_id,删掉其中一行即可:

// 移除重复的这行
// $district_id = isset($_GET["district_id"]) ? $_GET["district_id"] : "";

额外排查建议

  • 开启PHP错误日志,检查是否存在变量未定义、JSON编码失败等运行时错误;
  • 用Postman直接测试目标API的POST接口,确认API本身是否正常;
  • 核对get_plan()方法的实现,确保它正确处理POST请求的请求体和请求头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:39:32