Versions in this module Expand all Collapse all v0 v0.8.0 Mar 10, 2024 Changes in this version + const ErrDomainNotTrusted + const ErrExceededMaxContentLength + const ErrNilHTTPClient + const ErrNotHTTPS + const ErrRequestFailed + type Fetcher interface + Fetch func(ctx context.Context, uri string) ([]byte, error) + type SafeFetcher struct + Client *http.Client + Header http.Header + Logger *slog.Logger + MaxContentLength int64 + TrustedDomain []string + func (sf *SafeFetcher) Fetch(ctx context.Context, uri string) ([]byte, error) v0.7.1 Jan 25, 2024 v0.7.0 Jan 24, 2024 Changes in this version + const DefaultMaxRetries + const DefaultMaxRetryDelay + const DefaultMinRetryDelay + func DefaultIsRetryable(resp *http.Response, err error) bool v0.6.0 Jan 4, 2024 Changes in this version + const ErrExceededMaxRetries + func NewRetryingClient(timeout time.Duration, policy *RetryPolicy, logger *slog.Logger) *http.Client + type RetryPolicy struct + IsRetryable func(*http.Response, error) bool + MaxRetries int + MaxRetryDelay time.Duration + MinRetryDelay time.Duration + func NewRetryPolicy() *RetryPolicy + func (p *RetryPolicy) Wait(ctx context.Context, attempt int) error + type RetryRoundTripper struct + Logger *slog.Logger + Policy *RetryPolicy + func NewRetryRoundTripper(policy *RetryPolicy, logger *slog.Logger) *RetryRoundTripper + func (rt *RetryRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) v0.5.0 Dec 2, 2023 Changes in this version + const DefaultClientTimeout + const DefaultTransportExpectContinueTimeout + const DefaultTransportIdleConnTimeout + const DefaultTransportMaxIddleConns + const DefaultTransportTLSHandshakeTimeout + const ErrCannotCloseResponse + const ErrCannotDrainResponse + const UAChromeWindows + const UAEdgeWindows + const UAFirefoxWindows + const UASafariMacOS + func DrainResponseBody(resp *http.Response) error + func NewClient(timeout time.Duration) *http.Client + func NewTransport() *http.Transport v0.4.0 Oct 15, 2023 Changes in this version + const False + const True v0.3.0 Oct 15, 2023 Changes in this version + type ResponseError struct + Code int + Documentation string + Message string + func (e ResponseError) Error() string + func (e ResponseError) Write(ctx context.Context, logger *slog.Logger, w http.ResponseWriter) v0.2.0 Oct 8, 2023 v0.1.0 Oct 7, 2023 Changes in this version + const Accept + const AcceptCharset + const AcceptEncoding + const AcceptPatch + const AcceptRanges + const AcceptedLanguage + const AccessControlAllowCredentials + const AccessControlAllowHeaders + const AccessControlAllowMethods + const AccessControlAllowOrigin + const AccessControlExposeHeaders + const AccessControlMaxAge + const AccessControlRequestHeaders + const AccessControlRequestMethod + const Age + const Allow + const AltSCV + const ApplicationJSON + const ApplicationJavascript + const ApplicationXML + const Authorization + const Brotli + const CacheControl + const CharsetUTF8 + const Chunked + const Close + const Connection + const ContentDisposition + const ContentEncoding + const ContentLanguage + const ContentLength + const ContentLocation + const ContentRange + const ContentType + const CrossOriginResourcePolicy + const Date + const Deflate + const DeltaBase + const Deny + const ETag + const ErrInvalidIP + const ErrMissingRequest + const Expires + const FormData + const Gzip + const Host + const IM + const IfMatch + const IfModifiedSince + const IfNoneMatch + const IfRange + const IfUnmodifiedSince + const ImageGIF + const ImageJPEG + const ImagePNG + const ImageSVG + const KeepAliveK + const KeepAliveV + const LastModified + const Link + const Location + const NoCache + const NoTransform + const Origin + const Pragma + const ProxyAuthenticate + const ProxyAuthorization + const PublicKeyPins + const Referer + const RetryAfter + const SameOrigin + const SameSiteLax + const SameSiteNone + const SameSiteStrict + const Secure + const Server + const SetCookie + const StrictTransportSecurity + const TK + const TextCSS + const TextHTML + const TextJavascript + const TextPlain + const TimingAllowOrigin + const Trailer + const TransferEncoding + const Upgrade + const UserAgent + const Vary + const Via + const WWWAuthenticate + const Warning + const Wildcard + const XContentTypeOptions + const XDNSPrefetchControl + const XForwardedFor + const XForwardedHost + const XForwardedProto + const XFrameOptions + const XRealIP + const XXSSProtection + func ClientIP(req *http.Request) (string, error)