遇到的問題
列表接口返回的http狀態(tài)碼為200,但response body 為空,且查看日志沒有找到報(bào)錯(cuò).
經(jīng)過調(diào)試發(fā)現(xiàn)在類中的_getResponse方法中,在執(zhí)行
$res = json_encode($value, $option);
時(shí)返回為false.
通過打印json_last_error(), 發(fā)現(xiàn)是因?yàn)閭鹘ojson_encode()方法的數(shù)組中包含有無窮大或者分母為0的這種非法值.
解決辦法
json_encode() 方法可以傳入 JSON_PARTIAL_OUTPUT_ON_ERROR option 來將此類非法值強(qiáng)制轉(zhuǎn)換成0
建議
在 _getResponse方法的最后加上
if (JSON_ERROR_NONE !== json_last_error()) {
throw new \Exception(json_last_error_msg());
}
以便更好地定位錯(cuò)誤.