flog_flow_http
package:http client for
flog_flow: every request shows up in the
session timeline of the exported .html (method, URL, status and timing;
headers and bodies depending on CaptureConfig).
Usage
Use FlogHttpClient wherever you use an http.Client:
import 'package:flog_flow_http/flog_flow_http.dart';
final client = FlogHttpClient();
final res = await client.get(Uri.parse('https://api.example.com/products'));
It can wrap any other client (RetryClient, cupertino_http, cronet_http…):
final client = FlogHttpClient(inner: RetryClient(http.Client()));
To also record the top-level functions (http.get, http.post…) and any
package that creates its own http.Client(), install it for the whole app:
void main() {
http.runWithClient(() => runApp(const MyApp()), () => FlogHttpClient());
}
Responses keep streaming as usual: the client copies the body while it is read (only text, up to the configured limit) and records the request when the body has been read to the end.
What gets stored is controlled by flog_flow's CaptureConfig:
captureNetwork(defaulttrue): method, host, path, status and duration.captureNetworkBodies(defaulttrue): also the full URL and a preview of the request and response bodies.offlineMode(defaultfalse): full bodies and request/response headers, so the viewer can rebuild the request as cURL. Those are sensitive (tokens, cookies): don't share that file outside your team.
Using Dio instead? See flog_flow_dio.
Libraries
- flog_flow_http
- Cliente de
package:httppara flog_flow: cada petición queda como eventonetworken la línea de tiempo de la sesión.