README ¶
httplib
httplib is an libs help you to curl remote url.
How to use?
GET
you can use Get to crawl data.
import "github.com/astaxie/beego/httplib"
str, err := httplib.Get("http://beego.me/").String()
if err != nil {
// error
}
fmt.Println(str)
POST
POST data to remote url
req := httplib.Post("http://beego.me/")
req.Param("username","astaxie")
req.Param("password","123456")
str, err := req.String()
if err != nil {
// error
}
fmt.Println(str)
Set timeout
The default timeout is 60
seconds, function prototype:
SetTimeout(connectTimeout, readWriteTimeout time.Duration)
Example:
// GET
httplib.Get("http://beego.me/").SetTimeout(100 * time.Second, 30 * time.Second)
// POST
httplib.Post("http://beego.me/").SetTimeout(100 * time.Second, 30 * time.Second)
Debug
If you want to debug the request info, set the debug on
httplib.Get("http://beego.me/").Debug(true)
Set HTTP Basic Auth
str, err := Get("http://beego.me/").SetBasicAuth("user", "passwd").String()
if err != nil {
// error
}
fmt.Println(str)
Set HTTPS
If request url is https, You can set the client support TSL:
httplib.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
More info about the tls.Config
please visit http://golang.org/pkg/crypto/tls/#Config
Set HTTP Version
some servers need to specify the protocol version of HTTP
httplib.Get("http://beego.me/").SetProtocolVersion("HTTP/1.1")
Set Cookie
some http request need setcookie. So set it like this:
cookie := &http.Cookie{}
cookie.Name = "username"
cookie.Value = "astaxie"
httplib.Get("http://beego.me/").SetCookie(cookie)
Upload file
httplib support mutil file upload, use req.PostFile()
req := httplib.Post("http://beego.me/")
req.Param("username","astaxie")
req.PostFile("uploadfile1", "httplib.pdf")
str, err := req.String()
if err != nil {
// error
}
fmt.Println(str)
See godoc for further documentation and examples.
Documentation ¶
Overview ¶
Package httplib is used as http.Client Usage:
import "github.com/astaxie/beego/httplib"
b := httplib.Post("http://beego.me/") b.Param("username","astaxie") b.Param("password","123456") b.PostFile("uploadfile1", "httplib.pdf") b.PostFile("uploadfile2", "httplib.txt") str, err := b.String() if err != nil { t.Fatal(err) } fmt.Println(str) more docs http://beego.me/docs/module/httplib.md
Index ¶
- func SetDefaultSetting(setting BeegoHTTPSettings)
- func TimeoutDialer(cTimeout time.Duration, rwTimeout time.Duration) func(net, addr string) (c net.Conn, err error)
- type BeegoHTTPRequest
- func (b *BeegoHTTPRequest) Body(data interface{}) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) Bytes() ([]byte, error)
- func (b *BeegoHTTPRequest) Debug(isdebug bool) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) DoRequest() (resp *http.Response, err error)
- func (b *BeegoHTTPRequest) DumpBody(isdump bool) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) DumpRequest() []byte
- func (b *BeegoHTTPRequest) GetRequest() *http.Request
- func (b *BeegoHTTPRequest) Header(key, value string) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) JSONBody(obj interface{}) (*BeegoHTTPRequest, error)
- func (b *BeegoHTTPRequest) Param(key, value string) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) PostFile(formname, filename string) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) Response() (*http.Response, error)
- func (b *BeegoHTTPRequest) Retries(times int) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetBasicAuth(username, password string) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetCheckRedirect(redirect func(req *http.Request, via []*http.Request) error) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetCookie(cookie *http.Cookie) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetEnableCookie(enable bool) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetHost(host string) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetProtocolVersion(vers string) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetProxy(proxy func(*http.Request) (*url.URL, error)) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetTLSClientConfig(config *tls.Config) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetTimeout(connectTimeout, readWriteTimeout time.Duration) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetTransport(transport http.RoundTripper) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) SetUserAgent(useragent string) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) Setting(setting BeegoHTTPSettings) *BeegoHTTPRequest
- func (b *BeegoHTTPRequest) String() (string, error)
- func (b *BeegoHTTPRequest) ToFile(filename string) error
- func (b *BeegoHTTPRequest) ToJSON(v interface{}) error
- func (b *BeegoHTTPRequest) ToXML(v interface{}) error
- type BeegoHTTPSettings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetDefaultSetting ¶ added in v1.3.0
func SetDefaultSetting(setting BeegoHTTPSettings)
SetDefaultSetting Overwrite default settings
Types ¶
type BeegoHTTPRequest ¶ added in v1.6.0
type BeegoHTTPRequest struct {
// contains filtered or unexported fields
}
BeegoHTTPRequest provides more useful methods for requesting one url than http.Request.
func Delete ¶
func Delete(url string) *BeegoHTTPRequest
Delete returns *BeegoHttpRequest DELETE method.
func Head ¶
func Head(url string) *BeegoHTTPRequest
Head returns *BeegoHttpRequest with HEAD method.
func NewBeegoRequest ¶ added in v1.5.0
func NewBeegoRequest(rawurl, method string) *BeegoHTTPRequest
NewBeegoRequest return *BeegoHttpRequest with specific method
func Post ¶
func Post(url string) *BeegoHTTPRequest
Post returns *BeegoHttpRequest with POST method.
func (*BeegoHTTPRequest) Body ¶ added in v1.6.0
func (b *BeegoHTTPRequest) Body(data interface{}) *BeegoHTTPRequest
Body adds request raw body. it supports string and []byte.
func (*BeegoHTTPRequest) Bytes ¶ added in v1.6.0
func (b *BeegoHTTPRequest) Bytes() ([]byte, error)
Bytes returns the body []byte in response. it calls Response inner.
func (*BeegoHTTPRequest) Debug ¶ added in v1.6.0
func (b *BeegoHTTPRequest) Debug(isdebug bool) *BeegoHTTPRequest
Debug sets show debug or not when executing request.
func (*BeegoHTTPRequest) DoRequest ¶ added in v1.6.0
func (b *BeegoHTTPRequest) DoRequest() (resp *http.Response, err error)
DoRequest will do the client.Do
func (*BeegoHTTPRequest) DumpBody ¶ added in v1.6.0
func (b *BeegoHTTPRequest) DumpBody(isdump bool) *BeegoHTTPRequest
DumpBody setting whether need to Dump the Body.
func (*BeegoHTTPRequest) DumpRequest ¶ added in v1.6.0
func (b *BeegoHTTPRequest) DumpRequest() []byte
DumpRequest return the DumpRequest
func (*BeegoHTTPRequest) GetRequest ¶ added in v1.6.0
func (b *BeegoHTTPRequest) GetRequest() *http.Request
GetRequest return the request object
func (*BeegoHTTPRequest) Header ¶ added in v1.6.0
func (b *BeegoHTTPRequest) Header(key, value string) *BeegoHTTPRequest
Header add header item string in request.
func (*BeegoHTTPRequest) JSONBody ¶ added in v1.6.0
func (b *BeegoHTTPRequest) JSONBody(obj interface{}) (*BeegoHTTPRequest, error)
JSONBody adds request raw body encoding by JSON.
func (*BeegoHTTPRequest) Param ¶ added in v1.6.0
func (b *BeegoHTTPRequest) Param(key, value string) *BeegoHTTPRequest
Param adds query param in to request. params build query string as ?key1=value1&key2=value2...
func (*BeegoHTTPRequest) PostFile ¶ added in v1.6.0
func (b *BeegoHTTPRequest) PostFile(formname, filename string) *BeegoHTTPRequest
PostFile add a post file to the request
func (*BeegoHTTPRequest) Response ¶ added in v1.6.0
func (b *BeegoHTTPRequest) Response() (*http.Response, error)
Response executes request client gets response mannually.
func (*BeegoHTTPRequest) Retries ¶ added in v1.8.0
func (b *BeegoHTTPRequest) Retries(times int) *BeegoHTTPRequest
Retries sets Retries times. default is 0 means no retried. -1 means retried forever. others means retried times.
func (*BeegoHTTPRequest) SetBasicAuth ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetBasicAuth(username, password string) *BeegoHTTPRequest
SetBasicAuth sets the request's Authorization header to use HTTP Basic Authentication with the provided username and password.
func (*BeegoHTTPRequest) SetCheckRedirect ¶ added in v1.7.2
func (b *BeegoHTTPRequest) SetCheckRedirect(redirect func(req *http.Request, via []*http.Request) error) *BeegoHTTPRequest
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 (*BeegoHTTPRequest) SetCookie ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetCookie(cookie *http.Cookie) *BeegoHTTPRequest
SetCookie add cookie into request.
func (*BeegoHTTPRequest) SetEnableCookie ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetEnableCookie(enable bool) *BeegoHTTPRequest
SetEnableCookie sets enable/disable cookiejar
func (*BeegoHTTPRequest) SetHost ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetHost(host string) *BeegoHTTPRequest
SetHost set the request host
func (*BeegoHTTPRequest) SetProtocolVersion ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetProtocolVersion(vers string) *BeegoHTTPRequest
SetProtocolVersion Set the protocol version for incoming requests. Client requests always use HTTP/1.1.
func (*BeegoHTTPRequest) SetProxy ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetProxy(proxy func(*http.Request) (*url.URL, error)) *BeegoHTTPRequest
SetProxy set the http proxy example:
func(req *http.Request) (*url.URL, error) { u, _ := url.ParseRequestURI("http://127.0.0.1:8118") return u, nil }
func (*BeegoHTTPRequest) SetTLSClientConfig ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetTLSClientConfig(config *tls.Config) *BeegoHTTPRequest
SetTLSClientConfig sets tls connection configurations if visiting https url.
func (*BeegoHTTPRequest) SetTimeout ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetTimeout(connectTimeout, readWriteTimeout time.Duration) *BeegoHTTPRequest
SetTimeout sets connect time out and read-write time out for BeegoRequest.
func (*BeegoHTTPRequest) SetTransport ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetTransport(transport http.RoundTripper) *BeegoHTTPRequest
SetTransport set the setting transport
func (*BeegoHTTPRequest) SetUserAgent ¶ added in v1.6.0
func (b *BeegoHTTPRequest) SetUserAgent(useragent string) *BeegoHTTPRequest
SetUserAgent sets User-Agent header field
func (*BeegoHTTPRequest) Setting ¶ added in v1.6.0
func (b *BeegoHTTPRequest) Setting(setting BeegoHTTPSettings) *BeegoHTTPRequest
Setting Change request settings
func (*BeegoHTTPRequest) String ¶ added in v1.6.0
func (b *BeegoHTTPRequest) String() (string, error)
String returns the body string in response. it calls Response inner.
func (*BeegoHTTPRequest) ToFile ¶ added in v1.6.0
func (b *BeegoHTTPRequest) ToFile(filename string) error
ToFile saves the body data in response to one file. it calls Response inner.
func (*BeegoHTTPRequest) ToJSON ¶ added in v1.6.0
func (b *BeegoHTTPRequest) ToJSON(v interface{}) error
ToJSON returns the map that marshals from the body bytes as json in response . it calls Response inner.
func (*BeegoHTTPRequest) ToXML ¶ added in v1.6.0
func (b *BeegoHTTPRequest) ToXML(v interface{}) error
ToXML returns the map that marshals from the body bytes as xml in response . it calls Response inner.
type BeegoHTTPSettings ¶ added in v1.6.0
type BeegoHTTPSettings 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 }
BeegoHTTPSettings is the http.Client setting