颤抖等待GET响应不起作用

时间:2020-02-27 07:36:01

标签: flutter dart

我具有以下功能:

 Future<Null> _loadORDER(String menssage) async {

      var enZona =await ApiClient.zonaNum(menssage, apiKey);
      print('enZona: $enZona');
      if (enZona == 'true') {
        _moveToNotification(context);
      };
    }

印刷品给我以下消息:“ enZona:“响应”的实例”

如果我测试了api查询的邮递员的响应是否正常,请给我: true , 那我希望打印结果是:“ enZona:true”

但是我不知道在继续条件(if)之前如何等待ApiClient的响应

感谢您的帮助!

感谢我添加.body但我得到了相同的响应,以下是apiclient代码:

 final response = await http.get(baseUrl + '/shop/order/$message',
        headers: {HttpHeaders.authorizationHeader: apiKey});
    print("enZona: $response.body");
    return response;

其打印值为: enZona:“ Response” .body的实例

2 个答案:

答案 0 :(得分:1)

您应该使用大括号print("enZona: ${response.body}");,或者可以先将response.body分配给某个变量。

final foo = response.body; print(foo);

答案 1 :(得分:0)

如果转到pub.dev documentation for the Response class,您将看到Response不仅仅是响应的内容。它是一个包装器类,还包含诸如响应的statusCodeheaders等信息。

当您在Postman中看到响应时,您只关心响应的内容,即响应的body。您在代码中寻找的不是enZona的{​​{1}}实例,而是Response响应的body

因此,在尝试访问响应内容时,必须用enZona交换enZona