Package including hooks for easy works with http package in
- Simple hooks for all http methods
- Interceptors witch handling requests, responses and errors
- Decode json from response (
Response.json()
/Response.asMap
/Response.asList
) - Browser support
import 'package:network/network.dart';
// Client
final client = NetworkClient();
client.get(...);
client.post(...);
client.close();
Get request Blob:
final blobResponse = await 'https://via.placeholder.com/300'.get();
print(blobResponse.bytes);
Post request to API:
final postResponse = await 'https://jsonplaceholder.typicode.com/todos'.post(
body: {'title': 'test'},
);
print(postResponse.asMap['id']);
Handle exceptions:
try {
await 'https://jsonplaceholder.typicode.com/todos/202'.get();
} on NetworkException catch (error) {
print('Network exception called, status code: ${error.code}');
}
Add middleware:
import 'package:network/interceptors.dart';
final interceptor = Interceptor(
onRequest: (request) {
print('request on: ${request.url}');
return request.copyWith(
url: request.url + '/additional-link',
);
},
onResponse: (response) {
print('response status code: ${response.statusCode}');
return response;
},
onError: (error) {
if (error is UnauthorizedException) {
signOut();
}
return error;
},
)
final client = Network()..interceptors.add(interceptor)