https://github.com/ralph-bergmann/httptools
collection of Dart and Flutter libraries for HTTP request handling
https://github.com/ralph-bergmann/httptools
cache dart flutter http interceptor network
Last synced: 4 months ago
JSON representation
collection of Dart and Flutter libraries for HTTP request handling
- Host: GitHub
- URL: https://github.com/ralph-bergmann/httptools
- Owner: ralph-bergmann
- License: mit
- Created: 2024-06-29T00:28:22.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-03T22:08:53.000Z (4 months ago)
- Last Synced: 2025-06-04T05:31:43.268Z (4 months ago)
- Topics: cache, dart, flutter, http, interceptor, network
- Language: Dart
- Homepage:
- Size: 223 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HttpTools
HttpTools provides a collection of Dart and Flutter libraries for HTTP request handling.
The packages offer logging, caching, and intercepting capabilities to help developers
work effectively with network requests.## Packages
### http_client_interceptorThe [http_client_interceptor](https://pub.dev/packages/http_client_interceptor) package allows you to intercept and manipulate HTTP
requests and responses.```dart
import 'package:http/http.dart' as http;
import 'package:http_client_interceptor/http_interceptor.dart';class LoggingInterceptor extends HttpInterceptor {
@override
FutureOr onRequest(RequestOptions requestOptions) {
print('Request: ${requestOptions.method} ${requestOptions.url}');
return OnRequest.next(requestOptions);
}@override
FutureOr onResponse(http.Response response) {
print('Response: ${response.statusCode}');
return OnResponse.next(response);
}@override
FutureOr onError(RequestOptions requestOptions, Object error) {
print('Error: $error');
return OnError.next(requestOptions, error);
}
}void main() {
http.runWithClient(
_myDartApp,
() =>
HttpClientProxy(
interceptors: [LoggingInterceptor()],
),
);
}Future _myDartApp() async {
final client = http.Client();
final response = await client.get(
Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));
print(response.body);
client.close();
}
```### http_client_logger
The [http_client_logger](https://pub.dev/packages/http_client_logger) package provides an interceptor to log HTTP requests and
responses.```dart
import 'package:http/http.dart' as http;
import 'package:http_client_logger/http_client_logger.dart';
import 'package:http_client_interceptor/http_interceptor.dart';
import 'package:logging/logging.dart';void main() {
Logger.root.onRecord.listen((record) {
print(record.message);
});final client = HttpClientProxy(
interceptors: [HttpLogger(level: Level.basic)],
);client.get(
Uri.parse('https://jsonplaceholder.typicode.com/posts/1'),
headers: {
HttpHeaders.contentTypeHeader: 'application/json; charset=UTF-8',
},
).then((response) {
print(response.body);
client.close();
});
}
```### http_client_cache
The [http_client_cache](https://pub.dev/packages/http_client_cache) package provides caching mechanisms to improve the performance of
your HTTP requests.```dart
import 'dart:io' hide Directory;
import 'package:http/http.dart' as http;
import 'package:http_client_cache/http_client_cache.dart';
import 'package:http_client_interceptor/http_interceptor.dart';
import 'package:logging/logging.dart';void main() {
HttpOverrides.global = _HttpOverrides();Logger.root.onRecord.listen((record) {
print(record.message);
});final cache = HttpCache.inMemory();
http.runWithClient(
_myDartApp,
() =>
HttpClientProxy(
interceptors: [HttpCacheInterceptor(cache: cache)],
),
);
}Future _myDartApp() async {
final client = http.Client();
final response = await client.get(
Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));
print(response.body);
client.close();
}
```