restc

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2021 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReleaseResponse

func ReleaseResponse(resp *Response)

Types

type Cfg

type Cfg struct {
	Token                         string
	KeepAlive                     bool
	Timeout                       time.Duration
	RetryCount                    uint32
	Name                          string
	NoDefaultUserAgentHeader      bool
	DialDualStack                 bool
	MaxConnsPerHost               int
	MaxIdleConnDuration           time.Duration
	MaxConnDuration               time.Duration
	MaxIdemponentCallAttempts     int
	ReadBufferSize                int
	WriteBufferSize               int
	ReadTimeout                   time.Duration
	WriteTimeout                  time.Duration
	MaxResponseBodySize           int
	DisableHeaderNamesNormalizing bool
	DisablePathNormalizing        bool
	MaxConnWaitTimeout            time.Duration
	Proxy                         bool
	Socks5                        string
	CertPath                      string
	KeyPath                       string
	Insecure                      bool
	Header                        map[string]string
	// contains filtered or unexported fields
}

func DefaultCfg

func DefaultCfg() Cfg

func (Cfg) Build

func (t Cfg) Build(opts ...func(cfg *Cfg)) (_ Client, err error)

type Client

type Client interface {
	Do(ctx context.Context, req *Request) (*Response, error)
	Get(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)
	Delete(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)
	Post(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)
	PostForm(ctx context.Context, url string, val url.Values, requests ...func(req *Request)) (*Response, error)
	Put(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)
	Patch(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)
}

Client http client interface

type DebugRequestTransport added in v0.1.2

type DebugRequestTransport struct {
	RequestHeader  bool
	RequestBody    bool // RequestHeader 为 true 时,这个选项才会生效
	ResponseHeader bool
	ResponseBody   bool // ResponseHeader 为 true 时,这个选项才会生效

	// debug 信息输出到 Writer 中, 默认是 os.Stderr
	Writer io.Writer

	Transport http.RoundTripper
}

DebugRequestTransport 会打印请求和响应信息, 方便调试.

func (*DebugRequestTransport) RoundTrip added in v0.1.2

func (t *DebugRequestTransport) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip implements the RoundTripper interface.

type Option

type Option func(opts *Cfg)

func WithBackoff

func WithBackoff(bk retry.Backoff) Option

func WithDial

func WithDial(dial fasthttp.DialFunc) Option

func WithMiddle

func WithMiddle(middles ...types.Middleware) Option

func WithRetryIf

func WithRetryIf(rf fasthttp.RetryIfFunc) Option

func WithTLS

func WithTLS(tc *tls.Config) Option

type Request

type Request = fasthttp.Request

type RequestHeader

type RequestHeader = fasthttp.RequestHeader

type Response

type Response = fasthttp.Response

func Delete added in v0.1.2

func Delete(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)

func Do added in v0.1.2

func Do(ctx context.Context, req *Request) (*Response, error)

func Get added in v0.1.2

func Get(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)

func Patch added in v0.1.2

func Patch(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)

func Post added in v0.1.2

func Post(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)

func PostForm added in v0.1.2

func PostForm(ctx context.Context, url string, val url.Values, requests ...func(req *Request)) (*Response, error)

func Put added in v0.1.2

func Put(ctx context.Context, url string, requests ...func(req *Request)) (*Response, error)

type ResponseHeader

type ResponseHeader = fasthttp.ResponseHeader

type Uploader

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

func NewUploader

func NewUploader(c Client) *Uploader

func (*Uploader) AddFile

func (u *Uploader) AddFile(formname, filename string, fileReader io.Reader) *Uploader

func (*Uploader) AddParam

func (u *Uploader) AddParam(name, value string) *Uploader

func (*Uploader) AddParams

func (u *Uploader) AddParams(params map[string][]string) *Uploader

func (*Uploader) Body

func (u *Uploader) Body() (io.Reader, error)

func (*Uploader) ContentType

func (u *Uploader) ContentType() string

func (*Uploader) SetBoundary

func (u *Uploader) SetBoundary(boundary string) *Uploader

func (*Uploader) SetParams

func (u *Uploader) SetParams(params map[string][]string) *Uploader

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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