项目作者: nahid

项目描述 :
HTTP client for Go
高级语言: Go
项目地址: git://github.com/nahid/gohttp.git
创建时间: 2017-11-08T15:28:32Z
项目社区:https://github.com/nahid/gohttp

开源协议:MIT License

下载


gohttp

Build Status
Go Report Card
Coverage Status

HTTP client for Go, its also support asynchronous request

Installation

  1. go get github.com/nahid/gohttp

Example

POST https://httpbin.org/post

  1. package main
  2. import (
  3. "github.com/nahid/gohttp"
  4. "fmt"
  5. )
  6. func main() {
  7. req := gohttp.NewRequest()
  8. resp, err := req.
  9. FormData(map[string]string{"name": "Nahid"}).
  10. Post("https://httpbin.org/post")
  11. if err != nil {
  12. panic(err)
  13. }
  14. if resp.GetStatusCode() == 200 {
  15. var resps map[string]interface{}
  16. _ = resp.GetBodyWithUnmarshal(&resps)
  17. fmt.Println(resps["form"])
  18. }
  19. }

Async Example

  1. package main
  2. import (
  3. "github.com/nahid/gohttp"
  4. "fmt"
  5. )
  6. func main() {
  7. req := gohttp.NewRequest()
  8. ch := make(chan *gohttp.AsyncResponse)
  9. var users [3]string
  10. users[0] = "nahid"
  11. users[1] = "shipu"
  12. users[2] = "sujan"
  13. for i:=0; i<len(users); i++ {
  14. req.
  15. FormData(map[string]string{"user": users[i]}).
  16. AsyncPost("http://domain.app/send", ch)
  17. }
  18. for i:=0; i<len(users); i++ {
  19. op := <-ch
  20. fmt.Println(op.GetBodyAsString())
  21. }
  22. }

Available Method

  • NewRequest(options ...Option)

Request

  • Get(url string)
  • Post(url string)
  • Put(url string)
  • Patch(url string)
  • Delete(url string)

Async Request

  • AsyncGet(url string, ch chan)
  • AsyncPost(url string, ch chan)
  • AsyncPut(url string, ch chan)
  • AsyncPatch(url string, ch chan)
  • AsyncDelete(url string, ch chan)

Data Bindings

  • Headers(data map[string]string)
  • FormData(data map[string]string)
  • Json(data map[string]interface{})
  • Query(data map[string]string{})
  • Body(body []byte)
  • Text(text string)
  • BasicAuth(username, password string)
  • MultipartFormData(data map[string]string{})
  • Upload(name, file string)
  • Uploads(files map[string]string{})
  • UploadFromReader(param MultipartParam)
  • UploadsFromReader(params []MultipartParam)

Response

  • GetResp()
  • GetStatusCode()
  • GetBody()
  • GetBodyAsByte()
  • GetBodyAsString()
  • GetBodyWithUnmarshal(v interface{})

See API doc https://godoc.org/github.com/nahid/gohttp