Fix errors on http link timeout endpoint not closed
This commit is contained in:
parent
6a96b69bca
commit
db6aa150b5
|
@ -8,7 +8,6 @@ import 'dart:async';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:package_info/package_info.dart';
|
import 'package:package_info/package_info.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:http/http.dart' as http;
|
|
||||||
|
|
||||||
class HomeProvider with ChangeNotifier {
|
class HomeProvider with ChangeNotifier {
|
||||||
int _currentIndex = 0;
|
int _currentIndex = 0;
|
||||||
|
@ -20,7 +19,7 @@ class HomeProvider with ChangeNotifier {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future getAppVersion() async {
|
Future<String> getAppVersion() async {
|
||||||
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
||||||
String version = packageInfo.version;
|
String version = packageInfo.version;
|
||||||
String buildNumber = packageInfo.buildNumber;
|
String buildNumber = packageInfo.buildNumber;
|
||||||
|
@ -33,42 +32,47 @@ class HomeProvider with ChangeNotifier {
|
||||||
List _listEndpoints = await rootBundle
|
List _listEndpoints = await rootBundle
|
||||||
.loadString('config/gva_endpoints.json')
|
.loadString('config/gva_endpoints.json')
|
||||||
.then((jsonStr) => jsonDecode(jsonStr));
|
.then((jsonStr) => jsonDecode(jsonStr));
|
||||||
|
_listEndpoints.shuffle();
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
http.Response response;
|
|
||||||
_listEndpoints.shuffle();
|
|
||||||
String _endpoint;
|
String _endpoint;
|
||||||
int statusCode = 0;
|
int statusCode = 0;
|
||||||
|
|
||||||
final client = new HttpClient();
|
final client = new HttpClient();
|
||||||
client.connectionTimeout = const Duration(seconds: 1);
|
client.connectionTimeout = const Duration(milliseconds: 800);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
i++;
|
i++;
|
||||||
print(i.toString() + ' ème essai de recherche de endpoint GVA.');
|
print(i.toString() + ' ème essai de recherche de endpoint GVA.');
|
||||||
try {
|
print('Try GVA endpoint: ${_listEndpoints[i]}');
|
||||||
if (i > 5) {
|
if (i > 2) {
|
||||||
break;
|
print('NO VALID GVA ENDPOINT FOUND');
|
||||||
}
|
_endpoint = 'HS';
|
||||||
if (i != 0) {
|
break;
|
||||||
await Future.delayed(Duration(milliseconds: 300));
|
}
|
||||||
}
|
if (i != 0) {
|
||||||
response = await http
|
await Future.delayed(const Duration(milliseconds: 300));
|
||||||
.post(_listEndpoints[i])
|
}
|
||||||
.timeout(const Duration(seconds: 1));
|
|
||||||
} on TimeoutException catch (_) {
|
|
||||||
print(_listEndpoints[i] + ' is timeout, next');
|
|
||||||
statusCode = 50;
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
final request = await client.postUrl(Uri.parse(_listEndpoints[i]));
|
||||||
|
final response = await request.close();
|
||||||
|
|
||||||
|
_endpoint = _listEndpoints[i];
|
||||||
|
statusCode = response.statusCode;
|
||||||
|
} on TimeoutException catch (_) {
|
||||||
|
print('This endpoint is timeout, next');
|
||||||
|
statusCode = 50;
|
||||||
continue;
|
continue;
|
||||||
} on SocketException catch (_) {
|
} on SocketException catch (_) {
|
||||||
print(_listEndpoints[i] + ' is a bad endpoint, next');
|
print('This endpoint is a bad endpoint, next');
|
||||||
statusCode = 70;
|
statusCode = 70;
|
||||||
continue;
|
continue;
|
||||||
|
} on Exception {
|
||||||
|
print('Unknown error');
|
||||||
|
statusCode = 60;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
_endpoint = _listEndpoints[i];
|
|
||||||
statusCode = response.statusCode;
|
|
||||||
print('Endpoint statutcode: ' + statusCode.toString());
|
|
||||||
} while (statusCode != 400);
|
} while (statusCode != 400);
|
||||||
|
|
||||||
print('ENDPOINT: ' + _endpoint);
|
print('ENDPOINT: ' + _endpoint);
|
||||||
|
|
|
@ -5,7 +5,7 @@ description: A new Flutter project.
|
||||||
# pub.dev using `pub publish`. This is preferred for private packages.
|
# pub.dev using `pub publish`. This is preferred for private packages.
|
||||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
|
|
||||||
version: 0.0.1+3
|
version: 0.0.1+4
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.7.0 <3.0.0"
|
sdk: ">=2.7.0 <3.0.0"
|
||||||
|
|
Loading…
Reference in New Issue