This libary provides a “Golang Functional Options Pattern” implementation for the “net/http” client.

Supported options are:

Option Function
Debug Print debugging info to provided logger.
UserAgent Change the UserAgent header, if not set.
Timeout Set the client request timeout.
DisableHttp2 Disable HTTP2 connections.
Http2Transport Configure HTTP2 transport.
AutoDeflate Disable automatic deflation of gzip responses.
DisableCompression Remove Accept-Encoding: gzip header; and don’t deflate responses.
AuthProxy Add auth proxy headers to requests.
BasicAuth Set basic auth header.
BearerAuth Set bearer auth header.
BearerAuthWithRefresh Set bearer auth header, with refresh from file.
DialContext Configure alternative DialContext function.
MaxIdleConnsPerHost Configure MaxIdleConnsPerHost.
Proxy Configure Proxy.
TLSClientCertificate Use provided ClientCertificate function to determine what tls certificate to use for client authentication.
TLSDynamicClientCertificate Use provided DynamicClientCertificateSource to dynamically determine what tls certificate to use for client authentication, also closes existing connections when needed.
TLSRootCAs Use provided CertPool to verify the server certificate.
TLSDynamicRootCAs Use provided DynamicRootCAsSource to dynamically verify the server certificate.
TLSEnableSni Set SNI ServerName based on the request Host field.
TLSInsecureSkipVerify Insecure TLS skip verify
TLSTime Set Time function to use for TLS, usefull for testing.
StartDynamicFileClientCertificateSource Start a dynamic file-backed Client Certificate source that can be provided to TLSDynamicClientCertificate
StartDynamicFileRootCAsSource Start a dynamic file-backed Client RootCA source that can be provided to TLSDynamicRootCAs


View Github