/go-request

Advanced HTTP client for golang.

Primary LanguageGoMIT LicenseMIT

go-request

Advanced HTTP client for golang.

Installation

go get github.com/mingming-cn/go-request

Usage

import (
    "github.com/mingming-cn/go-request"
)

GET:

req := request.New()
resp, err := req.Get("https://httpbin.org/get")
j, err := resp.JSON()

POST:

req := request.New()
req.FormData.Set("key", "value")
req.FormData.Set("a", "123")
resp, err := req.Post("https://httpbin.org/post")

Cookies:

req := request.New()
req.Cookies.Set("key", "value")
req.Cookies.Set("a", "123")
resp, err := req.Get("https://httpbin.org/cookies")

Headers:

req := request.New()
req.Headers.Set("Accept-Encoding", "gzip,deflate,sdch",)
req.Headers.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",)
resp, err := req.Get("https://httpbin.org/get")

Files:

req := request.New()
f, err := os.Open("test.txt")
req.AddFile(request.FileField{"file", "test.txt", f})
resp, err := req.Post("https://httpbin.org/post")

Json:

req := request.New()
req.SetJSON(map[string]string{
    "a": "A",
    "b": "B",
})
resp, err := req.Post("https://httpbin.org/post")
req.SetJSON([]int{1, 2, 3})
resp, err = req.Post("https://httpbin.org/post")

HTTP Basic Authentication:

req := request.New()
req.SetBasicAuth("user", "passwd")
resp, err := req.Get("https://httpbin.org/basic-auth/user/passwd")