HttpRequest
A simple HTTP Request
package for golang. GET
POST
DELETE
PUT
Upload
Installation
go get github.com/kirinlabs/HttpRequest
How do we use HttpRequest?
Create request object
req := HttpRequest.NewRequest()
req := HttpRequest.NewRequest().Debug(true).DisableKeepAlives(false).SetTimeout(5)
Keep Alives
req.DisableKeepAlives(false)
Ignore Https certificate validation
req.SetTLSClient(&tls.Config{InsecureSkipVerify: true})
Set headers
req.SetHeaders(map[string]string{
"Content-Type": "application/x-www-form-urlencoded",
"Connection": "keep-alive",
})
req.SetHeaders(map[string]string{
"Source":"api",
})
Set cookies
req.SetCookies(map[string]string{
"name":"json",
"token":"",
})
req.SetCookies(map[string]string{
"age":"19",
})
Set timeout
req.SetTimeout(5) //default 30s
Object-oriented operation mode
req := HttpRequest.NewRequest().
Debug(true).
SetHeaders(map[string]string{
"Content-Type": "application/x-www-form-urlencoded",
}).SetTimeout(5)
res,err := HttpRequest.NewRequest().Get("http://127.0.0.1")
GET
Query parameter
res, err := req.Get("http://127.0.0.1:8000")
res, err := req.Get("http://127.0.0.1:8000?id=10&title=HttpRequest")
res, err := req.Get("http://127.0.0.1:8000?id=10&title=HttpRequest",nil)
res, err := req.Get("http://127.0.0.1:8000?id=10&title=HttpRequest","address=beijing")
res, err := HttpRequest.Get("http://127.0.0.1:8000")
res, err := HttpRequest.Debug(true).SetHeaders(map[string]string{}).Get("http://127.0.0.1:8000")
Multi parameter,url will be rebuild to http://127.0.0.1:8000?id=10&title=HttpRequest&name=jason&score=100
res, err := req.Get("http://127.0.0.1:8000?id=10&title=HttpRequest",map[string]interface{}{
"name": "jason",
"score": 100,
})
body, err := res.Body()
if err != nil {
return
}
return string(body)
POST
res, err := req.Post("http://127.0.0.1:8000")
res, err := req.Post("http://127.0.0.1:8000", "title=github&type=1")
res, err := req.JSON().Post("http://127.0.0.1:8000", "{\"id\":10,\"title\":\"HttpRequest\"}")
res, err := req.Post("http://127.0.0.1:8000", map[string]interface{}{
"id": 10,
"title": "HttpRequest",
})
body, err := res.Body()
if err != nil {
return
}
return string(body)
res, err := HttpRequest.Post("http://127.0.0.1:8000")
res, err := HttpRequest.JSON().Post("http://127.0.0.1:8000",map[string]interface{}{"title":"github"})
res, err := HttpRequest.Debug(true).SetHeaders(map[string]string{}).JSON().Post("http://127.0.0.1:8000","{\"title\":\"github\"}")
Upload
Params: url, filename, fileinput
res, err := req.Upload("http://127.0.0.1:8000/upload", "/root/demo.txt","uploadFile")
body, err := res.Body()
if err != nil {
return
}
return string(body)
Debug
Default false
req.Debug(true)
Print in standard output:
[HttpRequest]
-------------------------------------------------------------------
Request: GET http://127.0.0.1:8000?name=iceview&age=19&score=100
Headers: map[Content-Type:application/x-www-form-urlencoded]
Cookies: map[]
Timeout: 30s
ReqBody: map[age:19 score:100]
-------------------------------------------------------------------
Json
Post JSON request
Set header
req.SetHeaders(map[string]string{"Content-Type": "application/json"})
Or
req.JSON().Post("http://127.0.0.1:8000", map[string]interface{}{
"id": 10,
"title": "github",
})
req.JSON().Post("http://127.0.0.1:8000", "{\"title\":\"github\",\"id\":10}")
Post request
res, err := req.Post("http://127.0.0.1:8000", map[string]interface{}{
"id": 10,
"title": "HttpRequest",
})
Print formatted JSON
str, err := res.Export()
if err != nil {
return
}
Unmarshal JSON
var u User
err := res.Json(&u)
if err != nil {
return err
}
var m map[string]interface{}
err := res.Json(&m)
if err != nil {
return err
}
Response
Response() *http.Response
res, err := req.Post("http://127.0.0.1:8000/") //res is a http.Response object
StatusCode() int
res.StatusCode()
Body() ([]byte, error)
body, err := res.Body()
log.Println(string(body))
Time() string
res.Time() //ms
Print formatted JSON
str, err := res.Export()
if err != nil {
return
}
Unmarshal JSON
var u User
err := res.Json(&u)
if err != nil {
return err
}
var m map[string]interface{}
err := res.Json(&m)
if err != nil {
return err
}
Url() string
res.Url() //return the requested url
Headers() map[string]string
res.Headers() //return the response headers
Advanced
GET
import "github.com/kirinlabs/HttpRequest"
res,err := HttpRequest.Get("http://127.0.0.1:8000/")
res,err := HttpRequest.Get("http://127.0.0.1:8000/","title=github")
res,err := HttpRequest.Get("http://127.0.0.1:8000/?title=github")
res,err := HttpRequest.Debug(true).JSON().Get("http://127.0.0.1:8000/")
POST
import "github.com/kirinlabs/HttpRequest"
res,err := HttpRequest.Post("http://127.0.0.1:8000/")
res,err := HttpRequest.SetHeaders(map[string]string{
"title":"github",
}).Post("http://127.0.0.1:8000/")
res,err := HttpRequest.Debug(true).JSON().Post("http://127.0.0.1:8000/")
Example
import "github.com/kirinlabs/HttpRequest"
res,err := HttpRequest.Get("http://127.0.0.1:8000/")
res,err := HttpRequest.Get("http://127.0.0.1:8000/","title=github")
res,err := HttpRequest.Get("http://127.0.0.1:8000/?title=github")
res,err := HttpRequest.Get("http://127.0.0.1:8000/",map[string]interface{}{
"title":"github",
})
res,err := HttpRequest.Debug(true).JSON().SetHeaders(map[string]string{
"source":"api",
}).SetCookies(map[string]string{
"name":"httprequest",
}).Post("http://127.0.0.1:8000/")
//Or
req := HttpRequest.NewRequest()
req := req.Debug(true).SetHeaders()
res,err := req.Debug(true).JSON().SetHeaders(map[string]string{
"source":"api",
}).SetCookies(map[string]string{
"name":"httprequest",
}).Post("http://127.0.0.1:8000/")