Skip to content

Commit 163e567

Browse files
committed
changed to set and removecancel request added
1 parent 5245052 commit 163e567

File tree

3 files changed

+60
-58
lines changed

3 files changed

+60
-58
lines changed

packages/apidash_core/lib/services/http_client_manager.dart

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,28 @@
11
import 'dart:io';
2-
import 'dart:collection';
32
import 'package:flutter/foundation.dart';
43
import 'package:http/http.dart' as http;
54
import 'package:http/io_client.dart';
65

76
http.Client createHttpClientWithNoSSL() {
87
var ioClient = HttpClient()
9-
..badCertificateCallback =
10-
(X509Certificate cert, String host, int port) => true;
8+
..badCertificateCallback = (X509Certificate cert, String host, int port) => true;
119
return IOClient(ioClient);
1210
}
1311

1412
class HttpClientManager {
1513
static final HttpClientManager _instance = HttpClientManager._internal();
1614
static const int _maxCancelledRequests = 100;
1715
final Map<String, http.Client> _clients = {};
18-
final Queue<String> _cancelledRequests = Queue();
16+
final Set<String> _cancelledRequests = {};
1917

2018
factory HttpClientManager() {
2119
return _instance;
2220
}
2321

2422
HttpClientManager._internal();
2523

26-
http.Client createClient(
27-
String requestId, {
28-
bool noSSL = false,
29-
}) {
30-
final client =
31-
(noSSL && !kIsWeb) ? createHttpClientWithNoSSL() : http.Client();
24+
http.Client createClient(String requestId, {bool noSSL = false}) {
25+
final client = (noSSL && !kIsWeb) ? createHttpClientWithNoSSL() : http.Client();
3226
_clients[requestId] = client;
3327
return client;
3428
}
@@ -38,9 +32,9 @@ class HttpClientManager {
3832
_clients[requestId]?.close();
3933
_clients.remove(requestId);
4034

41-
_cancelledRequests.addLast(requestId);
42-
while (_cancelledRequests.length > _maxCancelledRequests) {
43-
_cancelledRequests.removeFirst();
35+
_cancelledRequests.add(requestId);
36+
if (_cancelledRequests.length > _maxCancelledRequests) {
37+
_cancelledRequests.remove(_cancelledRequests.first);
4438
}
4539
}
4640
}
@@ -49,6 +43,10 @@ class HttpClientManager {
4943
return _cancelledRequests.contains(requestId);
5044
}
5145

46+
void removeCancelledRequest(String requestId) {
47+
_cancelledRequests.remove(requestId);
48+
}
49+
5250
void closeClient(String requestId) {
5351
if (_clients.containsKey(requestId)) {
5452
_clients[requestId]?.close();

packages/apidash_core/lib/services/http_service.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ Future<(HttpResponse?, Duration?, String?)> sendHttpRequest(
1919
SupportedUriSchemes defaultUriScheme = kDefaultUriScheme,
2020
bool noSSL = false,
2121
}) async {
22+
if(httpClientManager.wasRequestCancelled(requestId)){
23+
httpClientManager.removeCancelledRequest(requestId);
24+
}
2225
final client = httpClientManager.createClient(requestId, noSSL: noSSL);
2326

2427
(Uri?, String?) uriRec = getValidRequestUri(
@@ -71,7 +74,8 @@ Future<(HttpResponse?, Duration?, String?)> sendHttpRequest(
7174
}
7275
}
7376
http.StreamedResponse multiPartResponse =
74-
await multiPartRequest.send();
77+
await client.send(multiPartRequest);
78+
7579
stopwatch.stop();
7680
http.Response convertedMultiPartResponse =
7781
await convertStreamedResponse(multiPartResponse);

pubspec.lock

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@ packages:
55
dependency: transitive
66
description:
77
name: _fe_analyzer_shared
8-
sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834
8+
sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab"
99
url: "https://pub.dev"
1010
source: hosted
11-
version: "72.0.0"
11+
version: "76.0.0"
1212
_macros:
1313
dependency: transitive
1414
description: dart
1515
source: sdk
16-
version: "0.3.2"
16+
version: "0.3.3"
1717
analyzer:
1818
dependency: transitive
1919
description:
2020
name: analyzer
21-
sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139
21+
sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e"
2222
url: "https://pub.dev"
2323
source: hosted
24-
version: "6.7.0"
24+
version: "6.11.0"
2525
ansi_styles:
2626
dependency: transitive
2727
description:
@@ -72,10 +72,10 @@ packages:
7272
dependency: transitive
7373
description:
7474
name: async
75-
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
75+
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
7676
url: "https://pub.dev"
7777
source: hosted
78-
version: "2.11.0"
78+
version: "2.12.0"
7979
audio_session:
8080
dependency: transitive
8181
description:
@@ -104,10 +104,10 @@ packages:
104104
dependency: transitive
105105
description:
106106
name: boolean_selector
107-
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
107+
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
108108
url: "https://pub.dev"
109109
source: hosted
110-
version: "2.1.1"
110+
version: "2.1.2"
111111
build:
112112
dependency: transitive
113113
description:
@@ -224,10 +224,10 @@ packages:
224224
dependency: transitive
225225
description:
226226
name: clock
227-
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
227+
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
228228
url: "https://pub.dev"
229229
source: hosted
230-
version: "1.1.1"
230+
version: "1.1.2"
231231
code_builder:
232232
dependency: "direct main"
233233
description:
@@ -240,10 +240,10 @@ packages:
240240
dependency: transitive
241241
description:
242242
name: collection
243-
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
243+
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
244244
url: "https://pub.dev"
245245
source: hosted
246-
version: "1.18.0"
246+
version: "1.19.0"
247247
conventional_commit:
248248
dependency: transitive
249249
description:
@@ -375,10 +375,10 @@ packages:
375375
dependency: transitive
376376
description:
377377
name: fake_async
378-
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
378+
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
379379
url: "https://pub.dev"
380380
source: hosted
381-
version: "1.3.1"
381+
version: "1.3.2"
382382
ffi:
383383
dependency: transitive
384384
description:
@@ -391,10 +391,10 @@ packages:
391391
dependency: transitive
392392
description:
393393
name: file
394-
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
394+
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
395395
url: "https://pub.dev"
396396
source: hosted
397-
version: "7.0.0"
397+
version: "7.0.1"
398398
file_selector:
399399
dependency: "direct main"
400400
description:
@@ -883,18 +883,18 @@ packages:
883883
dependency: transitive
884884
description:
885885
name: leak_tracker
886-
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
886+
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
887887
url: "https://pub.dev"
888888
source: hosted
889-
version: "10.0.5"
889+
version: "10.0.8"
890890
leak_tracker_flutter_testing:
891891
dependency: transitive
892892
description:
893893
name: leak_tracker_flutter_testing
894-
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
894+
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
895895
url: "https://pub.dev"
896896
source: hosted
897-
version: "3.0.5"
897+
version: "3.0.9"
898898
leak_tracker_testing:
899899
dependency: transitive
900900
description:
@@ -931,10 +931,10 @@ packages:
931931
dependency: transitive
932932
description:
933933
name: macros
934-
sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
934+
sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656"
935935
url: "https://pub.dev"
936936
source: hosted
937-
version: "0.1.2-main.4"
937+
version: "0.1.3-main.0"
938938
markdown:
939939
dependency: "direct main"
940940
description:
@@ -1074,10 +1074,10 @@ packages:
10741074
dependency: "direct main"
10751075
description:
10761076
name: path
1077-
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
1077+
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
10781078
url: "https://pub.dev"
10791079
source: hosted
1080-
version: "1.9.0"
1080+
version: "1.9.1"
10811081
path_parsing:
10821082
dependency: transitive
10831083
description:
@@ -1162,10 +1162,10 @@ packages:
11621162
dependency: transitive
11631163
description:
11641164
name: platform
1165-
sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65"
1165+
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
11661166
url: "https://pub.dev"
11671167
source: hosted
1168-
version: "3.1.5"
1168+
version: "3.1.6"
11691169
plugin_platform_interface:
11701170
dependency: transitive
11711171
description:
@@ -1233,10 +1233,10 @@ packages:
12331233
dependency: transitive
12341234
description:
12351235
name: process
1236-
sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32"
1236+
sha256: "107d8be718f120bbba9dcd1e95e3bd325b1b4a4f07db64154635ba03f2567a0d"
12371237
url: "https://pub.dev"
12381238
source: hosted
1239-
version: "5.0.2"
1239+
version: "5.0.3"
12401240
prompts:
12411241
dependency: transitive
12421242
description:
@@ -1489,7 +1489,7 @@ packages:
14891489
dependency: transitive
14901490
description: flutter
14911491
source: sdk
1492-
version: "0.0.99"
1492+
version: "0.0.0"
14931493
source_gen:
14941494
dependency: transitive
14951495
description:
@@ -1550,10 +1550,10 @@ packages:
15501550
dependency: transitive
15511551
description:
15521552
name: stack_trace
1553-
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
1553+
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
15541554
url: "https://pub.dev"
15551555
source: hosted
1556-
version: "1.11.1"
1556+
version: "1.12.0"
15571557
state_notifier:
15581558
dependency: transitive
15591559
description:
@@ -1582,10 +1582,10 @@ packages:
15821582
dependency: transitive
15831583
description:
15841584
name: string_scanner
1585-
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
1585+
sha256: "0bd04f5bb74fcd6ff0606a888a30e917af9bd52820b178eaa464beb11dca84b6"
15861586
url: "https://pub.dev"
15871587
source: hosted
1588-
version: "1.2.0"
1588+
version: "1.4.0"
15891589
sync_http:
15901590
dependency: transitive
15911591
description:
@@ -1606,26 +1606,26 @@ packages:
16061606
dependency: "direct dev"
16071607
description:
16081608
name: test
1609-
sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e"
1609+
sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f"
16101610
url: "https://pub.dev"
16111611
source: hosted
1612-
version: "1.25.7"
1612+
version: "1.25.8"
16131613
test_api:
16141614
dependency: transitive
16151615
description:
16161616
name: test_api
1617-
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
1617+
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
16181618
url: "https://pub.dev"
16191619
source: hosted
1620-
version: "0.7.2"
1620+
version: "0.7.3"
16211621
test_core:
16221622
dependency: transitive
16231623
description:
16241624
name: test_core
1625-
sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696"
1625+
sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d"
16261626
url: "https://pub.dev"
16271627
source: hosted
1628-
version: "0.6.4"
1628+
version: "0.6.5"
16291629
textwrap:
16301630
dependency: transitive
16311631
description:
@@ -1822,10 +1822,10 @@ packages:
18221822
dependency: transitive
18231823
description:
18241824
name: vm_service
1825-
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
1825+
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
18261826
url: "https://pub.dev"
18271827
source: hosted
1828-
version: "14.2.5"
1828+
version: "14.3.1"
18291829
watcher:
18301830
dependency: transitive
18311831
description:
@@ -1862,10 +1862,10 @@ packages:
18621862
dependency: transitive
18631863
description:
18641864
name: webdriver
1865-
sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e"
1865+
sha256: "3d773670966f02a646319410766d3b5e1037efb7f07cc68f844d5e06cd4d61c8"
18661866
url: "https://pub.dev"
18671867
source: hosted
1868-
version: "3.0.3"
1868+
version: "3.0.4"
18691869
webkit_inspection_protocol:
18701870
dependency: transitive
18711871
description:

0 commit comments

Comments
 (0)