http

package
v0.0.98 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2022 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultHTTPRequestIDKey = "X-Request-ID"
)

Variables

This section is empty.

Functions

func CloneMultipartFileHeader added in v0.0.61

func CloneMultipartFileHeader(fh *multipart.FileHeader) *multipart.FileHeader

func CloneMultipartForm added in v0.0.61

func CloneMultipartForm(f *multipart.Form) *multipart.Form

func CloneOrMakeHeader added in v0.0.61

func CloneOrMakeHeader(hdr http.Header) http.Header

CloneOrMakeHeader invokes Header.Clone but if the result is nil, it'll instead make and return a non-nil Header.

func CloneURL added in v0.0.61

func CloneURL(u *url.URL) *url.URL

func CloneURLValues added in v0.0.61

func CloneURLValues(v url.Values) url.Values

func ErrorFromHttp added in v0.0.93

func ErrorFromHttp(code int) error

func ExtractFromContext added in v0.0.95

func ExtractFromContext(ctx context.Context, key string) string

func ExtractFromHTTP added in v0.0.95

func ExtractFromHTTP(r *http.Request, key string) string

func ExtractHTTPAndContext added in v0.0.95

func ExtractHTTPAndContext(r *http.Request, key string) string

func ExtractRequestIDFromContext added in v0.0.95

func ExtractRequestIDFromContext(ctx context.Context) string

func ExtractRequestIdHTTPAndContext added in v0.0.95

func ExtractRequestIdHTTPAndContext(r *http.Request) string

func GetIPFromRequest added in v0.0.29

func GetIPFromRequest(r *http.Request) (net.IP, error)

returns IP address from request. It will lookup IP in X-Forwarded-For and X-Real-IP headers.

func RequestWithProxyTarget added in v0.0.93

func RequestWithProxyTarget(req *http.Request, target string) error

func SetPairContext added in v0.0.95

func SetPairContext(r *http.Request, key, value string) *http.Request

func SetRequestIdContext added in v0.0.95

func SetRequestIdContext(r *http.Request, requestID string) *http.Request

Types

type Client

type Client struct {
	http.Client
	// contains filtered or unexported fields
}

func NewClient

func NewClient(options ...ClientOption) (*Client, error)

func NewClientWithProxyTarget added in v0.0.95

func NewClientWithProxyTarget(target string, opts ...ClientOption) *Client

func (*Client) ApplyOptions

func (o *Client) ApplyOptions(options ...ClientOption) *Client

func (*Client) Do added in v0.0.93

func (c *Client) Do(req *http.Request) (*http.Response, error)

func (*Client) Get

func (c *Client) Get(url string) ([]byte, error)

func (*Client) Post

func (c *Client) Post(
	url, contentType string,
	headers map[string]string,
	body []byte,
) ([]byte, error)

func (*Client) PostJson added in v0.0.6

func (c *Client) PostJson(
	url string,
	headers map[string]string,
	body []byte,
) ([]byte, error)

func (*Client) PostJsonWithAuthorize added in v0.0.14

func (c *Client) PostJsonWithAuthorize(
	url string,
	headers map[string]string,
	auth func(r *http.Request) error,
	body []byte,
) ([]byte, error)

func (*Client) PostPb added in v0.0.80

func (c *Client) PostPb(
	url string,
	headers map[string]string,
	body []byte,
) ([]byte, error)

func (*Client) PostReader

func (c *Client) PostReader(
	url, contentType string,
	headers map[string]string,
	auth func(r *http.Request) error,
	body io.Reader,
) ([]byte, error)

type ClientOption

type ClientOption interface {
	// contains filtered or unexported methods
}

A ClientOption sets options.

func WithDisableKeepAlives

func WithDisableKeepAlives(disableKeepAlives bool) ClientOption

func WithIdleConnTimeout

func WithIdleConnTimeout(idleConnTimeout time.Duration) ClientOption

func WithLogger

func WithLogger(l *log.Logger) ClientOption

WithLogger

func WithMaxIdleConns

func WithMaxIdleConns(maxIdleConns int) ClientOption

func WithProxy added in v0.0.95

func WithProxy(proxyURL string) ClientOption

http://xxx:yyy@goproxy.com

func WithProxyTarget added in v0.0.93

func WithProxyTarget(target string) ClientOption

dns:///ai-media-1256936300.cos.ap-guangzhou.myqcloud.com

func WithResonseHeaderTimeout

func WithResonseHeaderTimeout(responseHeaderTimeout time.Duration) ClientOption

func WithTimeout

func WithTimeout(timeout time.Duration) ClientOption

type ClientOptionFunc

type ClientOptionFunc func(*Client)

ClientOptionFunc wraps a function that modifies Client into an implementation of the ClientOption interface.

type EmptyClientOption

type EmptyClientOption struct{}

EmptyClientOption does not alter the configuration. It can be embedded in another structure to build custom options.

This API is EXPERIMENTAL.

type EmptyHandlerChainOption added in v0.0.74

type EmptyHandlerChainOption struct{}

EmptyHandlerChainOption does not alter the configuration. It can be embedded in another structure to build custom options.

This API is EXPERIMENTAL.

type EmptyHandlerInterceptorOption added in v0.0.74

type EmptyHandlerInterceptorOption struct{}

EmptyHandlerInterceptorOption does not alter the configuration. It can be embedded in another structure to build custom options.

This API is EXPERIMENTAL.

type HandlerChain added in v0.0.74

type HandlerChain struct {
	//invoke before http handler
	PreHandlers []func(w http.ResponseWriter, r *http.Request) error
	Handlers    []HandlerInterceptor
	//invoke after http handler
	PostHandlers []func(w http.ResponseWriter, r *http.Request)
}

func NewHandlerChain added in v0.0.74

func NewHandlerChain(opts ...HandlerChainOption) *HandlerChain

func (*HandlerChain) ApplyOptions added in v0.0.74

func (o *HandlerChain) ApplyOptions(options ...HandlerChainOption) *HandlerChain

func (*HandlerChain) WrapH added in v0.0.74

func (c *HandlerChain) WrapH(next http.Handler) http.Handler

type HandlerChainOption added in v0.0.74

type HandlerChainOption interface {
	// contains filtered or unexported methods
}

A HandlerChainOption sets options.

type HandlerChainOptionFunc added in v0.0.74

type HandlerChainOptionFunc func(*HandlerChain)

HandlerChainOptionFunc wraps a function that modifies HandlerChain into an implementation of the HandlerChainOption interface.

type HandlerInterceptor added in v0.0.74

type HandlerInterceptor struct {
	//http middleware
	Interceptor func(h http.Handler) http.Handler
}

func NewHandlerInterceptor added in v0.0.74

func NewHandlerInterceptor(opts ...HandlerInterceptorOption) *HandlerInterceptor

func (*HandlerInterceptor) ApplyOptions added in v0.0.74

func (o *HandlerInterceptor) ApplyOptions(options ...HandlerInterceptorOption) *HandlerInterceptor

type HandlerInterceptorOption added in v0.0.74

type HandlerInterceptorOption interface {
	// contains filtered or unexported methods
}

A HandlerInterceptorOption sets options.

type HandlerInterceptorOptionFunc added in v0.0.74

type HandlerInterceptorOptionFunc func(*HandlerInterceptor)

HandlerInterceptorOptionFunc wraps a function that modifies HandlerInterceptor into an implementation of the HandlerInterceptorOption interface.

type ResponseWriterWrapper added in v0.0.74

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

ResponseWriterWrapper

func NewResponseWriterWrapper added in v0.0.74

func NewResponseWriterWrapper(w http.ResponseWriter) *ResponseWriterWrapper

func (*ResponseWriterWrapper) Header added in v0.0.74

func (rww *ResponseWriterWrapper) Header() http.Header

Header function overwrites the http.ResponseWriter Header() function

func (*ResponseWriterWrapper) String added in v0.0.74

func (rww *ResponseWriterWrapper) String() string

String function pack respose header, http status code and body

func (*ResponseWriterWrapper) Write added in v0.0.74

func (rww *ResponseWriterWrapper) Write(buf []byte) (int, error)

func (*ResponseWriterWrapper) WriteHeader added in v0.0.74

func (rww *ResponseWriterWrapper) WriteHeader(statusCode int)

WriteHeader function overwrites the http.ResponseWriter WriteHeader() function

Jump to

Keyboard shortcuts

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