2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 13:36:50 +00:00

Better error handling for URL parsing

This commit is contained in:
Oliver 2021-07-13 08:01:45 +10:00
parent 8b5bd0f213
commit 374a387355

View File

@ -710,7 +710,12 @@ class InvenTreeAPI {
var client = createClient(true);
final uri = Uri.parse(_url);
Uri? uri = Uri.tryParse(_url);
if (uri == null) {
showServerError(L10().invalidHost, L10().invalidHostDetails);
return null;
}
// Check for invalid host
if (uri.host.isEmpty) {
@ -718,8 +723,11 @@ class InvenTreeAPI {
return null;
}
HttpClientRequest? request;
try {
// Open a connection
HttpClientRequest? request = await client.getUrl(uri)
request = await client.getUrl(uri)
.timeout(Duration(seconds: 10))
.catchError((error) {
print("GET request returned error");
@ -744,6 +752,26 @@ class InvenTreeAPI {
return null;
});
} catch (error) {
if (error is FormatException) {
showServerError(
L10().invalidHost,
L10().invalidHostDetails)
;
} else if (error is SocketException) {
showServerError(
L10().connectionRefused,
error.toString()
);
} else {
showServerError(
L10().serverError,
error.toString()
);
}
return null;
}
if (request == null) {
return null;