Flutter新冠疫情追踪App调用API抛出异常求助(新手)
问题分析与解决
从你的代码和异常截图来看,核心问题是API URL拼接错误,导致请求地址无效,触发了网络异常。
看你的AppUrl类代码:
static const String baseUrl = 'https://disease.sh/v3/covid-19'; static const String worldStatesApi = '${baseUrl}all';
拼接后生成的URL是https://disease.sh/v3/covid-19all,这显然是错误的——baseUrl和子路径之间缺少了关键的斜杠/,服务器无法识别这个非法接口地址,进而抛出异常。
修复方案
修改AppUrl类的URL拼接逻辑,确保路径分隔正确,两种可选方式:
方式一:给baseUrl末尾添加斜杠
class AppUrl { // baseUrl末尾加斜杠,后续子路径直接拼接 static const String baseUrl = 'https://disease.sh/v3/covid-19/'; static const String worldStatesApi = '${baseUrl}all'; static const String countriesList = '${baseUrl}countries'; }
方式二:拼接子路径时补充斜杠
class AppUrl { static const String baseUrl = 'https://disease.sh/v3/covid-19'; // 在baseUrl和子路径之间添加斜杠 static const String worldStatesApi = '${baseUrl}/all'; static const String countriesList = '${baseUrl}/countries'; }
两种方式都能生成正确的API地址:
https://disease.sh/v3/covid-19/allhttps://disease.sh/v3/covid-19/countries
修复后重新运行应用,API请求即可正常发送。
内容的提问来源于stack exchange,提问作者Shahzain Ahmed
相关产品推荐
相关产品推荐

