当我尝试从 api 获取数据时项目冻结
Project freezes when I try to get data from api
我创建了一个函数,它将从 API 获取数据。但是当我打开项目时,什么都没有返回给我。我在获取数据之前和之后放置了两个打印件,第一个打印了但之后没有任何反应。我没有收到任何错误。
void getData() async {
print("----Before");
Response response = await get(Uri.parse('https://worldtimeapi.org/timezones/Africa/Abidjan'));
print("----After");
Map data = jsonDecode(response.body);
print(data);
}
@override
void initState() {
// TODO: implement initState
super.initState();
getData();
}
看不出您的代码有任何问题。我试过 运行 你给的上面的代码。 API 似乎有问题。如果您的应用程序看起来像冻结一样卡住,并且如果您为此功能使用 futureBuilder,请尝试在您的功能中使用 return。
所以发生的事情是你在 super.initState()
之后调用 getData();
,另一件事是你的 Url 也是错误的。
这是正确的,
https://worldtimeapi.org/api/timezone/Africa/Abidjan
你的代码应该看起来像这样才能正常工作。
void getData() async {
print("----Before");
Response response = await get(
Uri.parse('https://worldtimeapi.org/api/timezone/Africa/Abidjan'));
print("----After");
Map data = jsonDecode(response.body);
print(data);
}
@override
void initState() {
getData();
super.initState();
}
我创建了一个函数,它将从 API 获取数据。但是当我打开项目时,什么都没有返回给我。我在获取数据之前和之后放置了两个打印件,第一个打印了但之后没有任何反应。我没有收到任何错误。
void getData() async {
print("----Before");
Response response = await get(Uri.parse('https://worldtimeapi.org/timezones/Africa/Abidjan'));
print("----After");
Map data = jsonDecode(response.body);
print(data);
}
@override
void initState() {
// TODO: implement initState
super.initState();
getData();
}
看不出您的代码有任何问题。我试过 运行 你给的上面的代码。 API 似乎有问题。如果您的应用程序看起来像冻结一样卡住,并且如果您为此功能使用 futureBuilder,请尝试在您的功能中使用 return。
所以发生的事情是你在 super.initState()
之后调用 getData();
,另一件事是你的 Url 也是错误的。
这是正确的,
https://worldtimeapi.org/api/timezone/Africa/Abidjan
你的代码应该看起来像这样才能正常工作。
void getData() async {
print("----Before");
Response response = await get(
Uri.parse('https://worldtimeapi.org/api/timezone/Africa/Abidjan'));
print("----After");
Map data = jsonDecode(response.body);
print(data);
}
@override
void initState() {
getData();
super.initState();
}