httplib

package
v1.23.0-rc0 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2024 License: MIT Imports: 22 Imported by: 131

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RequestContextKey = RequestContextKeyStruct{}

Functions

func GuessCurrentAppURL added in v1.22.0

func GuessCurrentAppURL(ctx context.Context) string

GuessCurrentAppURL tries to guess the current full app URL (with sub-path) by http headers. It always has a '/' suffix, exactly the same as setting.AppURL

func GuessCurrentHostURL added in v1.22.1

func GuessCurrentHostURL(ctx context.Context) string

GuessCurrentHostURL tries to guess the current full host URL (no sub-path) by http headers, there is no trailing slash.

func IsCurrentGiteaSiteURL added in v1.22.0

func IsCurrentGiteaSiteURL(ctx context.Context, s string) bool

func IsRelativeURL added in v1.22.0

func IsRelativeURL(s string) bool

IsRelativeURL detects if a URL is relative (no scheme or host)

func MakeAbsoluteURL added in v1.22.0

func MakeAbsoluteURL(ctx context.Context, link string) string

MakeAbsoluteURL tries to make a link to an absolute URL: * If link is empty, it returns the current app URL. * If link is absolute, it returns the link. * Otherwise, it returns the current host URL + link, the link itself should have correct sub-path (AppSubURL) if needed.

func ServeContentByReadSeeker added in v1.20.0

func ServeContentByReadSeeker(r *http.Request, w http.ResponseWriter, filePath string, modTime *time.Time, reader io.ReadSeeker)

func ServeContentByReader added in v1.20.0

func ServeContentByReader(r *http.Request, w http.ResponseWriter, filePath string, size int64, reader io.Reader)

func ServeSetHeaders added in v1.20.0

func ServeSetHeaders(w http.ResponseWriter, opts *ServeHeaderOptions)

ServeSetHeaders sets necessary content serve headers

func TimeoutDialer

func TimeoutDialer(cTimeout time.Duration) func(ctx context.Context, net, addr string) (c net.Conn, err error)

TimeoutDialer returns functions of connection dialer with timeout settings for http.Transport Dial field.

Types

type Request

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

Request provides more useful methods for requesting one url than http.Request.

func NewRequest added in v1.2.0

func NewRequest(url, method string) *Request

NewRequest returns *Request with specific method

func (*Request) Body

func (r *Request) Body(data any) *Request

Body adds request raw body. it supports string and []byte.

func (*Request) GoString added in v1.20.0

func (r *Request) GoString() string

func (*Request) Header

func (r *Request) Header(key, value string) *Request

Header add header item string in request.

func (*Request) Param

func (r *Request) Param(key, value string) *Request

Param adds query param in to request. params build query string as ?key1=value1&key2=value2...

func (*Request) Response

func (r *Request) Response() (*http.Response, error)

Response executes request client gets response manually.

func (*Request) SetContext added in v1.15.0

func (r *Request) SetContext(ctx context.Context) *Request

SetContext sets the request's Context

func (*Request) SetReadWriteTimeout added in v1.20.0

func (r *Request) SetReadWriteTimeout(readWriteTimeout time.Duration) *Request

func (*Request) SetTLSClientConfig

func (r *Request) SetTLSClientConfig(config *tls.Config) *Request

SetTLSClientConfig sets tls connection configurations if visiting https url.

func (*Request) SetTimeout

func (r *Request) SetTimeout(connectTimeout, readWriteTimeout time.Duration) *Request

SetTimeout sets connect time out and read-write time out for BeegoRequest.

func (*Request) SetTransport

func (r *Request) SetTransport(transport http.RoundTripper) *Request

SetTransport sets transport to

type RequestContextKeyStruct added in v1.22.0

type RequestContextKeyStruct struct{}

type ServeHeaderOptions added in v1.20.0

type ServeHeaderOptions struct {
	ContentType        string // defaults to "application/octet-stream"
	ContentTypeCharset string
	ContentLength      *int64
	Disposition        string // defaults to "attachment"
	Filename           string
	CacheDuration      time.Duration // defaults to 5 minutes
	LastModified       time.Time
}

type Settings

type Settings struct {
	UserAgent        string
	ConnectTimeout   time.Duration
	ReadWriteTimeout time.Duration
	TLSClientConfig  *tls.Config
	Transport        http.RoundTripper
}

Settings is the default settings for http client

Jump to

Keyboard shortcuts

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