configure method
Applies additional configuration to the HttpMessageHandlerBuilder.
The next parameter represents the next filter in the pipeline, or the
final handler building step if this is the last filter.
Filters can execute code before and after calling next:
class MyFilter extends HttpMessageHandlerBuilderFilter {
@override
void configure(
void Function(HttpMessageHandlerBuilder) next,
HttpMessageHandlerBuilder builder,
) {
// Execute code before building
print('Building handler for: ${builder.name}');
// Call the next filter in the pipeline
next(builder);
// Execute code after building
print('Handler built for: ${builder.name}');
}
}
Implementation
@override
void configure(
void Function(HttpMessageHandlerBuilder) next,
HttpMessageHandlerBuilder builder,
) {
// Call the next filter in the pipeline
next(builder);
// Get options for this named client
final name = builder.name ?? Options.defaultName;
final options = _optionsMonitor.get(name);
// Skip logging if suppressed
if (options.suppressDefaultLogging) {
return;
}
// Create logger for this HTTP client
final logger = _loggerFactory.createLogger(
'System.Net.Http.HttpClient.$name.LogicalHandler',
);
// Add logging handler to the pipeline
final loggingHandler = LoggingHttpMessageHandler(
logger: logger,
shouldRedactHeaderValue: options.shouldRedactHeaderValue,
);
builder.additionalHandlers.add(loggingHandler);
}