Dart Http Package request timeout

You have two options availabe.

Reduce the timeout on the HttpClient

final client = new HttpClient();
client.connectionTimeout = const Duration(seconds: 10);

This will apply to all request made by the same client. If the request exceeds this timeout, a SocketException is thrown.

Set a per request timeout
You can set a timeout on any Future using the Future.timeout method.

try {
  ..
  final request = await client.get(...);
  final response = await request.close().timeout(const Duration(seconds: 10));
  // more code
} on TimeoutException catch (e) {
  // handle timeout
}

This is for http package

final response = await http.post(Url).timeout(Duration(seconds: 5));

And this is for Dio package (recommend to test this package)

BaseOptions options = new BaseOptions(
    baseUrl: baseUrl,
    connectTimeout: 10000, //10 seconds
    receiveTimeout: 10000,
   );

Dio dio = new Dio(options);

Response<dynamic> response = await dio.post(url, data: mapData);

Tags:

Http

Dart

Flutter