multiplexer

package
v0.0.0-...-4c9e79b Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2023 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HopByHopHeaders []string = []string{
	"Connection",
	"Keep-Alive",
	"Proxy-Authenticate",
	"Proxy-Authorization",
	"TE",
	"Trailers",
	"Transfer-Encoding",
	"Upgrade",
}

Hop-by-hop headers defined here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers

Functions

func ContextWithResults

func ContextWithResults(ctx context.Context, results []*Result, err error) context.Context

func HeadersFromRequest

func HeadersFromRequest(req *http.Request) http.Header

TODO remove headers listed in the Connection header

func WithDefaultHeaders

func WithDefaultHeaders(next http.Handler) http.Handler

Types

type Request

type Request struct {
	Header http.Header

	Timeout      time.Duration
	HmacSecret   string
	Non2xxErrors bool
	Tripper      Tripper
	SecretFilter secretfilter.Filter
	// contains filtered or unexported fields
}

func NewRequest

func NewRequest(tripper Tripper) *Request

func (*Request) Do

func (r *Request) Do(ctx context.Context) ([]*Result, error)

func (*Request) WithHeadersFromRequest

func (r *Request) WithHeadersFromRequest(req *http.Request)

func (*Request) WithRequestable

func (r *Request) WithRequestable(requestable Requestable)

type Requestable

type Requestable interface {
	URL() string
	TemplateURL() string
	Metadata() map[string]string
}

func RequestableFromContext

func RequestableFromContext(ctx context.Context) Requestable

type RequestableContextKey

type RequestableContextKey struct{}

type Result

type Result struct {
	Url          string
	Duration     time.Duration
	HttpResponse *http.Response
	Body         []byte
	StatusCode   int
}

func (*Result) Header

func (r *Result) Header() http.Header

func (*Result) HeadersWithoutProxyHeaders

func (r *Result) HeadersWithoutProxyHeaders() http.Header

type ResultError

type ResultError struct {
	Result *Result
	// contains filtered or unexported fields
}

func (*ResultError) Error

func (re *ResultError) Error() string

type Results

type Results interface {
	Error() error
	Results() []*Result
}

func ResultsFromContext

func ResultsFromContext(ctx context.Context) Results

type TimeoutError

type TimeoutError struct {
	// contains filtered or unexported fields
}

func (*TimeoutError) Error

func (et *TimeoutError) Error() string

func (*TimeoutError) Unwrap

func (et *TimeoutError) Unwrap() error

type Tripper

type Tripper interface {
	Request(r *http.Request) (*http.Response, error)
}

func NewStandardTripper

func NewStandardTripper(client *http.Client) Tripper

Creates a new instance of a Tripper. The passed in client is modified to have no cookie jar and to not follow redirects.

Jump to

Keyboard shortcuts

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