httpx

package
v0.0.121 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2020 License: Apache-2.0 Imports: 16 Imported by: 31

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HasContentType added in v0.0.81

func HasContentType(r *http.Request, mimetypes ...string) bool

HasContentType determines whether the request `content-type` includes a server-acceptable mime-type

Failure should yield an HTTP 415 (`http.StatusUnsupportedMediaType`)

func MustNewRequest added in v0.0.83

func MustNewRequest(method, url string, body io.Reader, contentType string) *http.Request

MustNewRequest returns a new *http.Request or fatals.

func NewRequestForm added in v0.0.83

func NewRequestForm(method, url string, data url.Values) (*http.Request, error)

NewRequestForm returns a new POST Form *http.Request.

func NewRequestJSON added in v0.0.83

func NewRequestJSON(method, url string, data interface{}) (*http.Request, error)

NewRequestJSON returns a new JSON *http.Request.

func NewResilientClientLatencyToleranceConfigurable added in v0.0.88

func NewResilientClientLatencyToleranceConfigurable(rt http.RoundTripper, timeout time.Duration, backOffDieAfter time.Duration) *http.Client

NewResilientClientLatencyToleranceConfigurable creates a new http.Client for environments with configurable latency tolerance. If transport is set (not nil) it will be wrapped by NewDefaultResilientRoundTripper.

func NewResilientClientLatencyToleranceExtreme added in v0.0.58

func NewResilientClientLatencyToleranceExtreme(rt http.RoundTripper) *http.Client

NewResilientClientLatencyToleranceExtreme creates a new http.Client for environments with extreme latency tolerance. If transport is set (not nil) it will be wrapped by NewDefaultResilientRoundTripper. The client will stop requests after 30 minutes.

func NewResilientClientLatencyToleranceHigh added in v0.0.58

func NewResilientClientLatencyToleranceHigh(rt http.RoundTripper) *http.Client

NewResilientClientLatencyToleranceHigh creates a new http.Client for environments with high latency tolerance. If transport is set (not nil) it will be wrapped by NewDefaultResilientRoundTripper. The client will stop requests after 15 seconds.

func NewResilientClientLatencyToleranceMedium added in v0.0.58

func NewResilientClientLatencyToleranceMedium(rt http.RoundTripper) *http.Client

NewResilientClientLatencyToleranceMedium creates a new http.Client for environments with medium latency tolerance. If transport is set (not nil) it will be wrapped by NewDefaultResilientRoundTripper. The client will stop requests after 5 seconds.

func NewResilientClientLatencyToleranceSmall added in v0.0.58

func NewResilientClientLatencyToleranceSmall(rt http.RoundTripper) *http.Client

NewResilientClientLatencyToleranceSmall creates a new http.Client for environments with small latency tolerance. If transport is set (not nil) it will be wrapped by NewDefaultResilientRoundTripper.

Types

type CompressionRequestReader added in v0.0.110

type CompressionRequestReader struct {
	ErrHandler func(w http.ResponseWriter, r *http.Request, err error)
}

func NewCompressionRequestReader added in v0.0.110

func NewCompressionRequestReader(eh func(w http.ResponseWriter, r *http.Request, err error)) *CompressionRequestReader

func (*CompressionRequestReader) ServeHTTP added in v0.0.110

type ResilientRoundTripper

type ResilientRoundTripper struct {
	// RoundTripper the wrapped RoundTripper.
	http.RoundTripper

	// ShouldRetry defines a strategy for retries.
	ShouldRetry RetryPolicy

	MaxInterval    time.Duration
	MaxElapsedTime time.Duration
}

ResilientRoundTripper wraps a RoundTripper and retries requests on failure.

func NewDefaultResilientRoundTripper

func NewDefaultResilientRoundTripper(
	backOffMaxInterval time.Duration,
	backOffDieAfter time.Duration,
) *ResilientRoundTripper

NewDefaultResilientRoundTripper returns a new ResilientRoundTripper with defaults.

func NewResilientRoundTripper

func NewResilientRoundTripper(
	roundTripper http.RoundTripper,
	backOffMaxInterval time.Duration,
	backOffDieAfter time.Duration,
) *ResilientRoundTripper

NewResilientRoundTripper returns a new ResilientRoundTripper.

func (*ResilientRoundTripper) RoundTrip

func (rt *ResilientRoundTripper) RoundTrip(r *http.Request) (*http.Response, error)

RoundTrip executes a single HTTP transaction, returning a Response for the provided Request.

func (*ResilientRoundTripper) WithShouldRetry

func (rt *ResilientRoundTripper) WithShouldRetry(policy RetryPolicy) *ResilientRoundTripper

WithShouldRetry sets a RetryPolicy.

type RetryPolicy

type RetryPolicy func(*http.Response, error) (retry bool)

RetryPolicy returns true if the request should be retried.

func LoggedShouldRetry

func LoggedShouldRetry(l logrus.FieldLogger) RetryPolicy

LoggedShouldRetry returns a RetryPolicy that logs erros.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL