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")

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.

Expand ▾ Collapse ▴

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

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func SetDefaultSetting

    func SetDefaultSetting(setting BeegoHTTPSettings)

      SetDefaultSetting Overwrite default settings

      func TimeoutDialer

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

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

        Types

        type BeegoHTTPRequest

        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 Get

            func Get(url string) *BeegoHTTPRequest

              Get returns *BeegoHttpRequest with GET method.

              func Head(url string) *BeegoHTTPRequest

                Head returns *BeegoHttpRequest with HEAD method.

                func NewBeegoRequest

                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 Put

                    func Put(url string) *BeegoHTTPRequest

                      Put returns *BeegoHttpRequest with PUT method.

                      func (*BeegoHTTPRequest) Body

                      func (b *BeegoHTTPRequest) Body(data interface{}) *BeegoHTTPRequest

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

                        func (*BeegoHTTPRequest) Bytes

                        func (b *BeegoHTTPRequest) Bytes() ([]byte, error)

                          Bytes returns the body []byte in response. it calls Response inner.

                          func (*BeegoHTTPRequest) Debug

                          func (b *BeegoHTTPRequest) Debug(isdebug bool) *BeegoHTTPRequest

                            Debug sets show debug or not when executing request.

                            func (*BeegoHTTPRequest) DoRequest

                            func (b *BeegoHTTPRequest) DoRequest() (resp *http.Response, err error)

                              DoRequest will do the client.Do

                              func (*BeegoHTTPRequest) DumpBody

                              func (b *BeegoHTTPRequest) DumpBody(isdump bool) *BeegoHTTPRequest

                                DumpBody setting whether need to Dump the Body.

                                func (*BeegoHTTPRequest) DumpRequest

                                func (b *BeegoHTTPRequest) DumpRequest() []byte

                                  DumpRequest return the DumpRequest

                                  func (*BeegoHTTPRequest) GetRequest

                                  func (b *BeegoHTTPRequest) GetRequest() *http.Request

                                    GetRequest return the request object

                                    func (*BeegoHTTPRequest) Header

                                    func (b *BeegoHTTPRequest) Header(key, value string) *BeegoHTTPRequest

                                      Header add header item string in request.

                                      func (*BeegoHTTPRequest) JSONBody

                                      func (b *BeegoHTTPRequest) JSONBody(obj interface{}) (*BeegoHTTPRequest, error)

                                        JSONBody adds request raw body encoding by JSON.

                                        func (*BeegoHTTPRequest) Param

                                        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

                                          func (b *BeegoHTTPRequest) PostFile(formname, filename string) *BeegoHTTPRequest

                                            PostFile add a post file to the request

                                            func (*BeegoHTTPRequest) Response

                                            func (b *BeegoHTTPRequest) Response() (*http.Response, error)

                                              Response executes request client gets response mannually.

                                              func (*BeegoHTTPRequest) Retries

                                              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) RetryDelay

                                                func (b *BeegoHTTPRequest) RetryDelay(delay time.Duration) *BeegoHTTPRequest

                                                func (*BeegoHTTPRequest) SetBasicAuth

                                                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

                                                  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

                                                    func (b *BeegoHTTPRequest) SetCookie(cookie *http.Cookie) *BeegoHTTPRequest

                                                      SetCookie add cookie into request.

                                                      func (*BeegoHTTPRequest) SetEnableCookie

                                                      func (b *BeegoHTTPRequest) SetEnableCookie(enable bool) *BeegoHTTPRequest

                                                        SetEnableCookie sets enable/disable cookiejar

                                                        func (*BeegoHTTPRequest) SetHost

                                                        func (b *BeegoHTTPRequest) SetHost(host string) *BeegoHTTPRequest

                                                          SetHost set the request host

                                                          func (*BeegoHTTPRequest) SetProtocolVersion

                                                          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

                                                            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

                                                              func (b *BeegoHTTPRequest) SetTLSClientConfig(config *tls.Config) *BeegoHTTPRequest

                                                                SetTLSClientConfig sets tls connection configurations if visiting https url.

                                                                func (*BeegoHTTPRequest) SetTimeout

                                                                func (b *BeegoHTTPRequest) SetTimeout(connectTimeout, readWriteTimeout time.Duration) *BeegoHTTPRequest

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

                                                                  func (*BeegoHTTPRequest) SetTransport

                                                                  func (b *BeegoHTTPRequest) SetTransport(transport http.RoundTripper) *BeegoHTTPRequest

                                                                    SetTransport set the setting transport

                                                                    func (*BeegoHTTPRequest) SetUserAgent

                                                                    func (b *BeegoHTTPRequest) SetUserAgent(useragent string) *BeegoHTTPRequest

                                                                      SetUserAgent sets User-Agent header field

                                                                      func (*BeegoHTTPRequest) Setting

                                                                        Setting Change request settings

                                                                        func (*BeegoHTTPRequest) String

                                                                        func (b *BeegoHTTPRequest) String() (string, error)

                                                                          String returns the body string in response. it calls Response inner.

                                                                          func (*BeegoHTTPRequest) ToFile

                                                                          func (b *BeegoHTTPRequest) ToFile(filename string) error

                                                                            ToFile saves the body data in response to one file. it calls Response inner.

                                                                            func (*BeegoHTTPRequest) ToJSON

                                                                            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

                                                                              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.

                                                                                func (*BeegoHTTPRequest) ToYAML

                                                                                func (b *BeegoHTTPRequest) ToYAML(v interface{}) error

                                                                                  ToYAML returns the map that marshals from the body bytes as yaml in response . it calls Response inner.

                                                                                  func (*BeegoHTTPRequest) XMLBody

                                                                                  func (b *BeegoHTTPRequest) XMLBody(obj interface{}) (*BeegoHTTPRequest, error)

                                                                                    XMLBody adds request raw body encoding by XML.

                                                                                    func (*BeegoHTTPRequest) YAMLBody

                                                                                    func (b *BeegoHTTPRequest) YAMLBody(obj interface{}) (*BeegoHTTPRequest, error)

                                                                                      YAMLBody adds request raw body encoding by YAML.

                                                                                      type BeegoHTTPSettings

                                                                                      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
                                                                                      	RetryDelay       time.Duration
                                                                                      }

                                                                                        BeegoHTTPSettings is the http.Client setting

                                                                                        Source Files