Skip to content

Commit

Permalink
sample
Browse files Browse the repository at this point in the history
  • Loading branch information
hoc081098 committed Sep 3, 2024
1 parent f5b2ed5 commit b82ea82
Showing 1 changed file with 41 additions and 25 deletions.
66 changes: 41 additions & 25 deletions example/lib/http_client_hoc081098_example.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:io';

import 'package:http_client_hoc081098/http_client_hoc081098.dart';
import 'package:http/http.dart' as http;
import 'package:http_client_hoc081098/http_client_hoc081098.dart';

import 'user.dart';

Expand Down Expand Up @@ -34,26 +34,36 @@ void main() async {
],
);

final cancelToken = CancellationToken();
final uri = Uri.parse('https://jsonplaceholder.typicode.com/users/1');
await getExample(client);
print('-' * 128);

// ignore: unawaited_futures
() async {
await Future<void>.delayed(const Duration(milliseconds: 300));
cancelToken.cancel();
print('Cancelling...');
}();
await getSingleExample(client);
print('-' * 128);

await postExample(client);
print('-' * 128);

client.close();
print('Client closed gratefully.');
}

Future<void> postExample(SimpleHttpClient client) async {
try {
final json = await client.getJson(uri,
headers: {}, cancelToken: cancelToken) as Map<String, dynamic>;
final json = await client.postJson(
Uri.parse('https://jsonplaceholder.typicode.com/users'),
body: {
'name': 'hoc081098',
'username': 'hoc081098',
'email': 'hoc081098@gmail.com',
},
) as Map<String, dynamic>;
print(json);
} catch (e) {
print(e);
}
}

print('-' * 128);

Future<void> getSingleExample(SimpleHttpClient client) async {
final single = useCancellationToken<dynamic>(
(cancelToken) => client.getJson(
Uri.parse('https://jsonplaceholder.typicode.com/users/2'),
Expand All @@ -63,29 +73,35 @@ void main() async {
).cast<Map<String, dynamic>>().map(User.fromJson);
final subscription = single.listen(print, onError: print);

// ignore: unawaited_futures
() async {
await Future<void>.delayed(const Duration(milliseconds: 120));
await subscription.cancel();
print('Cancelling single...');
}();
}()
.ignore();

await Future<void>.delayed(const Duration(seconds: 1));
print('-' * 128);
}

Future<void> getExample(SimpleHttpClient client) async {
final cancelToken = CancellationToken();
final uri = Uri.parse('https://jsonplaceholder.typicode.com/users/1');

() async {
await Future<void>.delayed(const Duration(milliseconds: 300));
cancelToken.cancel();
print('Cancelling...');
}()
.ignore();

try {
final json = await client.postJson(
Uri.parse('https://jsonplaceholder.typicode.com/users'),
body: {
'name': 'hoc081098',
'username': 'hoc081098',
'email': 'hoc081098@gmail.com',
},
final json = await client.getJson(
uri,
headers: {},
cancelToken: cancelToken,
) as Map<String, dynamic>;
print(json);
} catch (e) {
print(e);
}

client.close();
}

0 comments on commit b82ea82

Please sign in to comment.