在制作倦韵音乐播放器的时候,我没考虑过如果API无法访问的时候会怎么样󠄐󠄹󠅀󠄪󠄢󠄡󠄦󠄞󠄧󠄣󠄞󠄢󠄡󠄦󠄞󠄢󠄤󠄧󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄥󠄡󠄨󠄠󠄡󠄢󠄨󠄧󠄬󠅒󠅢󠄟󠄮󠇕󠅰󠆖󠇖󠅴󠅿󠇕󠅽󠆊󠇕󠆞󠆒󠄐󠇗󠅹󠅸󠇖󠆍󠅳󠇖󠅹󠅰󠇖󠆌󠅹󠄬󠅒󠅢󠄟󠄮
比如在以下代码中,我是直接在php内进行一个CURL,获取到数据后再转化为JSON,然后再写入缓存中后,return出json。󠄐󠄹󠅀󠄪󠄢󠄡󠄦󠄞󠄧󠄣󠄞󠄢󠄡󠄦󠄞󠄢󠄤󠄧󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄥󠄡󠄨󠄠󠄡󠄢󠄨󠄧󠄬󠅒󠅢󠄟󠄮󠇕󠅰󠆖󠇖󠅴󠅿󠇕󠅽󠆊󠇕󠆞󠆒󠄐󠇗󠅹󠅸󠇖󠆍󠅳󠇖󠅹󠅰󠇖󠆌󠅹󠄬󠅒󠅢󠄟󠄮
$url = $source . '/?type=' . $type . '&id=' . $id;
$output = JY_MUSICPLAYER_CURL($url);
$output = json_decode($output, true);
if($output['error']){
return '""';
}
// 转换成你需要的格式
$jsArray = array_map(
function ($item) {
return [
'musictitle' => $item['name'],
'musicurl' => $item['url'],
'musicimg' => $item['pic'],
'lyrurl' => $item['lrc']
];
},$output
);
// 将 PHP数组转换为JSON字符串
$jsArray = json_encode($jsArray);
// 将结果存入缓存文件
file_put_contents($cache_file, $jsArray);
return $jsArray;
但是这会导致一个问题,如果CURL的目标地址由于一些问题(网站崩溃/无法访问/证书失效)等等原因无法获取到数据,就会导致后面转为JSON的过程中报错,导致服务器500,这是绝对不能允许发生的。
所以给我的启发就是:只要进行涉及访问HTTP操作的时候就一定要带上try catch来进行一个异常的处理。
try{
··你的代码··
}catch(Throwable $e){
··异常的处理··
}
© 版权声明
THE END
暂无评论内容