I have a problem handling the error
SocketException: Connection failed (OS Error: Network is unreachable, errno = 101) address = 192.168.43.159, port = 80
.
What I already did :
My Reference Making Network http error SocketException: Failed host lookup
<uses-permission android:name="android.permission.INTERNET"/>
try catch
to handling this errorFuture loginMahasiswa(body) async {
try {
var apiRespon = await http.post('$baseURL/mahasiswa/login',
body: body, headers: CrudComponent.headers);
int statusCode = apiRespon.statusCode;
if (statusCode == 200) {
final apiResponJson = json.decode(apiRespon.body);
print('Success Load Data Json ($apiResponJson)');
return apiResponJson;
} else {
final apiResponJson = json.decode(apiRespon.body);
print('fail Load Data Json $apiResponJson');
return apiResponJson;
}
} catch (e) {
print(e);
return null;
}
}
void _loginMahasiswa() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
try {
final body = {"email": _txtEmail.text, "password": _txtPassword.text};
var loginMahasiswa = await api.loginMahasiswa(body);
String message = loginMahasiswa['message'];
var dataUser = loginMahasiswa['data'];
// String idUser = dataUser[0]['id_user'] ?? "null";
if (loginMahasiswa['status'] == true) {
setState(() {
preferences.setString('token', dataUser[0]['username']);
Navigator.of(context).pushAndRemoveUntil(
PageTransition(
type: PageTransitionType.rightToLeftWithFade,
child: HomePage()),
(Route<dynamic> route) => false);
});
} else {
print(message);
_showSnackBar(context, message, Colors.red);
}
} on SocketException catch (_) {
//throw ("No connection Internet");
_showSnackBar(context, 'no connection', Colors.orange);
}
}
But my Snackbar
does not show an error no connection
if I click the button.
I'm using a real device to run my app and I purposely turn off the hotspot to test my app not connected to the server.
Make sure you are online, you are connected to internet whether it is mobile or emulator
Make sure you have given internet permission in your app's android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With