Witam.
Natknąłem się na pewien problem.
Future<Map<String, dynamic>> postRequest(String endpoint, Map<String, dynamic> obj) async {
try {
final response = await post(
endpoint,
obj,
).timeout(Duration(seconds: 10));
return jsonDecode(response.bodyString ?? "");
} on SocketException {
throw APIException("Brak połączenia z serwerem. Sprawdź dostęp do internetu.");
} on TimeoutException {
throw APIException("Przekroczono limit połączenia. Serwer jest niedostępny lub sprawdź dostęp do internetu i spróbuj ponownie później.");
} on FormatException {
throw APIException("Serwer zwrócił niepoprawny format danych. Spróbuj ponownie później lub skontaktuj się z administratorem.");
}
}
Mam ogólny request w HttpService
, który na tę chwilę metodą POST
ogarnia tylko logowanie do aplikacji. Do API łączę się lokalnie z emulatora.
- Wyłączenie API -> zwraca
FormatException
- Wyłączenie neta w emulatorze -> zwraca
FormatException
Jak mam zwrócić SocketException
oraz TimeoutException
? Chce też jeszcze dorzucić HttpException
, ale nie łapie w ogóle tych wyjątków, które faktycznie występują.