dart 如何捕获HTTP.client Flutter上的超时错误

gwo2fgha  于 2023-02-14  发布在  Flutter
关注(0)|答案(1)|浏览(149)

我有一个Future,它使用http.client结构调用POST API。
目前有一个问题,说的API和我的调用是超时之前,完整的头部收到,给我一个未经处理的异常。
返回此异常并显示返回问题的snackbar的最佳方法是什么?

Future<dynamic> get() async {
try {
  var response = await client.post(
    Uri.parse(Url),
    headers: headers,
    body: body,
  );

}

agxfikkp

agxfikkp1#

下面是捕获超时错误的简单http调用
返回错误并在处理API调用时捕获此错误

import 'package:http/http.dart';

Future<dynamic> get() async {
  try {
    var response = await post(
      Uri.parse(Url),
      headers: headers,
      body: body,
    ).timeout(Duration(seconds: 2), onTimeout: (){
      /// here is the response if api call time out
      /// you can show snackBar here or where you handle api call
      return Response('Time out!', 500);
    });
  }catch(e){
    print(e);
  }
}

可以在timeout方法中更改持续时间

相关问题