当我尝试从 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();
    
  }