接口测试成功,但实际使用返回为空值的困惑
进行php文档接口测试时,出现测试成功但实际使用返回为空值的问题。接口使用get方法接收数据,将之转换为数组后返回前端。
受影响的代码片段:
$sss = $_GET['sss']; $kkk = $_GET['kkk']; $arr = [ 'sss' => $sss, 'kkk' => $kkk, ]; echo json_encode($arr);
经过各种测试后发现:
- apifox测试成功,返回:{“sss”: “xxxx”,”kkk”: “ppp”}
- 在线接口测试失败,返回:{“sss”: “”,”kkk”: null}
- 使用post方法接收,返回为空
- 直接在网页上使用,返回为空
原因分析:
通过仔细检查代码,可以发现接收数据的方法没有问题。问题可能出在传参上。
在问题中提到的在线接口测试中,出现了kkk为NULL的情况。这表明请求中并没有传递kkk参数。而sss虽然返回了空字符,但应该是因为请求中传递了sss但未提供值。
解决方案:
确保在请求接口时正确传递所需参数。使用适当的工具(例如postman)检查请求是否包含所有必需的参数和值。