add http get timeouts

This commit is contained in:
Fabian Freund
2024-06-16 21:29:19 +02:00
parent a166172862
commit d1cb4c5157
4 changed files with 11 additions and 6 deletions
+6 -2
View File
@@ -53,7 +53,8 @@ class GenericWebsiteService extends _$GenericWebsiteService {
Future<Result<WebPageInfo>> getInfo(Uri url) async {
return Result.fromAsync(
() async {
final response = await _client.get(url);
final response =
await _client.get(url).timeout(const Duration(seconds: 10));
return await compute(
(args) {
final document = html_parser.parse(args[0]);
@@ -82,7 +83,10 @@ class GenericWebsiteService extends _$GenericWebsiteService {
(result) => result.flatMapAsync(
(info) async {
if (info.favicon != null) {
return _client.get(info.favicon!.url).then((response) {
return _client
.get(info.favicon!.url)
.timeout(const Duration(seconds: 10))
.then((response) {
if (response.statusCode == 200) {
return response.bodyBytes;
} else {
@@ -7,7 +7,7 @@ part of 'generic_website.dart';
// **************************************************************************
String _$genericWebsiteServiceHash() =>
r'6b9f74e6009c04c962273631cee0b1a595c4fa61';
r'06ec407f4ed37b1b6370d48ad418b54131a08007';
/// See also [GenericWebsiteService].
@ProviderFor(GenericWebsiteService)
@@ -21,8 +21,9 @@ class KagiAutosuggestService extends _$KagiAutosuggestService {
Future<Result<List<String>>> getSuggestions(String query) async {
return Result.fromAsync(
() async {
final response =
await _client.get(_baseUrl.replace(queryParameters: {'q': query}));
final response = await _client
.get(_baseUrl.replace(queryParameters: {'q': query}))
.timeout(const Duration(seconds: 5));
final results = jsonDecode(utf8.decode(response.bodyBytes)) as List;
return switch (results.last) {
@@ -7,7 +7,7 @@ part of 'autosuggest.dart';
// **************************************************************************
String _$kagiAutosuggestServiceHash() =>
r'2c45eb0bf0f9d898b9198ee757be7f72cf9efd89';
r'843b0d84b1dde2d903412a123c8c10d26e8036fd';
/// See also [KagiAutosuggestService].
@ProviderFor(KagiAutosuggestService)