Documentation ¶
Overview ¶
Package httplib is used as http.Client Usage:
import "github.com/gleez/pkg/httplib"
r := httplib.Post("http://gleez.com/") r.Param("username","astaxie") r.Param("password","123456") r.PostFile("uploadfile1", "httplib.pdf") r.PostFile("uploadfile2", "httplib.txt") str, err := r.String() if err != nil { t.Fatal(err) } fmt.Println(str)
Index ¶
- Variables
- func SetDefaultSetting(setting Settings)
- func TimeoutDialer(cTimeout time.Duration, rwTimeout time.Duration) func(net, addr string) (c net.Conn, err error)
- type Request
- func (r *Request) Body(data interface{}) *Request
- func (r *Request) Bytes() ([]byte, error)
- func (r *Request) Debug(isdebug bool) *Request
- func (r *Request) DoRequest() (resp *http.Response, err error)
- func (r *Request) DumpBody(isdump bool) *Request
- func (r *Request) DumpRequest() []byte
- func (r *Request) GetRequest() *http.Request
- func (r *Request) Header(key, value string) *Request
- func (r *Request) HeaderWithSensitiveCase(key, value string) *Request
- func (r *Request) Headers() http.Header
- func (r *Request) JSONBody(obj interface{}) (*Request, error)
- func (r *Request) Param(key, value string) *Request
- func (r *Request) PostFile(formname, filename string) *Request
- func (r *Request) Response() (*http.Response, error)
- func (r *Request) Retries(times int) *Request
- func (r *Request) SetBasicAuth(username, password string) *Request
- func (r *Request) SetCheckRedirect(redirect func(req *http.Request, via []*http.Request) error) *Request
- func (r *Request) SetCookie(cookie *http.Cookie) *Request
- func (r *Request) SetEnableCookie(enable bool) *Request
- func (r *Request) SetHost(host string) *Request
- func (r *Request) SetProtocolVersion(vers string) *Request
- func (r *Request) SetProxy(proxy func(*http.Request) (*url.URL, error)) *Request
- func (r *Request) SetTLSClientConfig(config *tls.Config) *Request
- func (r *Request) SetTimeout(connectTimeout, readWriteTimeout time.Duration) *Request
- func (r *Request) SetTransport(transport http.RoundTripper) *Request
- func (r *Request) SetUserAgent(useragent string) *Request
- func (r *Request) Setting(setting Settings) *Request
- func (r *Request) String() (string, error)
- func (r *Request) ToFile(filename string) error
- func (r *Request) ToJSON(v interface{}) error
- func (r *Request) ToXML(v interface{}) error
- func (r *Request) ToYAML(v interface{}) error
- func (r *Request) XMLBody(obj interface{}) (*Request, error)
- func (r *Request) YAMLBody(obj interface{}) (*Request, error)
- type Settings
Constants ¶
This section is empty.
Variables ¶
var CustomSetting = Settings{ UserAgent: "GleezServer", ConnectTimeout: 60 * time.Second, ReadWriteTimeout: 60 * time.Second, Transport: &http.Transport{ DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 40 * time.Second, DualStack: true, }).DialContext, MaxIdleConns: 100, TLSHandshakeTimeout: 20 * time.Second, IdleConnTimeout: 20 * time.Second, ExpectContinueTimeout: 20 * time.Second, }, Gzip: true, DumpBody: true, }
Functions ¶
func SetDefaultSetting ¶
func SetDefaultSetting(setting Settings)
SetDefaultSetting overwrites default settings
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 ¶
NewRequest returns *Request with specific method
func (*Request) DumpRequest ¶
DumpRequest return the DumpRequest
func (*Request) GetRequest ¶
GetRequest return the request object
func (*Request) HeaderWithSensitiveCase ¶
HeaderWithSensitiveCase add header item in request and keep the case of the header key.
func (*Request) Param ¶
Param adds query param in to request. params build query string as ?key1=value1&key2=value2...
func (*Request) Retries ¶
Retries sets Retries times. default is 0 means no retried. -1 means retried forever. others means retried times.
func (*Request) SetBasicAuth ¶
SetBasicAuth sets the request's Authorization header to use HTTP Basic Authentication with the provided username and password.
func (*Request) SetCheckRedirect ¶
func (r *Request) SetCheckRedirect(redirect func(req *http.Request, via []*http.Request) error) *Request
SetCheckRedirect specifies the policy for handling redirects.
If CheckRedirect is nil, the Client uses its default policy, which is to stop after 10 consecutive requests.
func (*Request) SetEnableCookie ¶
SetEnableCookie sets enable/disable cookiejar
func (*Request) SetProtocolVersion ¶
SetProtocolVersion sets the protocol version for incoming requests. Client requests always use HTTP/1.1.
func (*Request) SetProxy ¶
SetProxy sets http proxy example:
func(req *http.Request) (*url.URL, error) { u, _ := url.ParseRequestURI("http://127.0.0.1:8118") return u, nil }
func (*Request) SetTLSClientConfig ¶
SetTLSClientConfig sets tls connection configurations if visiting https url.
func (*Request) SetTimeout ¶
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
func (*Request) SetUserAgent ¶
SetUserAgent sets User-Agent header field
func (*Request) ToFile ¶
ToFile saves the body data in response to one file. it calls Response inner.
func (*Request) ToJSON ¶
ToJSON returns the map that marshals from the body bytes as json in response . it calls Response inner.
func (*Request) ToXML ¶
ToXML returns the map that marshals from the body bytes as xml in response . it calls Response inner.
func (*Request) ToYAML ¶
ToYAML returns the map that marshals from the body bytes as yaml in response . it calls Response inner.
type Settings ¶
type Settings struct { ShowDebug bool UserAgent string ConnectTimeout time.Duration ReadWriteTimeout time.Duration TLSClientConfig *tls.Config Proxy func(*http.Request) (*url.URL, error) Transport http.RoundTripper CheckRedirect func(req *http.Request, via []*http.Request) error EnableCookie bool Gzip bool DumpBody bool Retries int // if set to -1 means will retry forever }
Settings is the default settings for http client