go语言http请求HttpRequest

Golang的第三方http请求包 https://github.com/kirinlabs/HttpRequest

具有快速构建HeadersCookies设置超时时间请求耗时等功能

不管是Get还是Post请求都可以快速构建并发送请求,甚至还支持Put和Delete等方法


当设置req.Debug(true),还可以打印每次请求的相关信息,很方便开发过程中的调试工作


安装:

    go get https://github.com/kirinlabs/HttpRequest


实例化:

    req := HttpRequest.NewRequest()


设置超时:

    req.Timeout(5)


打开调试模式:

    req.Debug(true)


设置Headers:

req.SetHeaders(map[string]string{
    "Content-Type": "application/x-www-form-urlencoded", //这也是HttpRequest包的默认设置
})


设置Cookies

    req.SetCookies(map[string]string{})


获取返回的Response对象

    resq.Response()


获取返回码

    resq.StatusCode()


获取Body主体信息

    resq.Body() 

    返回[]byte和error

获取请求耗时

    resq.Time() string   单位是毫秒


以下是试用实例代码:

package main

import (
   "HttpRequest"
   "fmt"
   "log"
)

func main() {

   req := HttpRequest.NewRequest()

   // 设置超时时间,不设置时,默认30s
   req.SetTimeout(5)

   // 设置Headers
   req.SetHeaders(map[string]string{
      "Content-Type": "application/x-www-form-urlencoded", //这也是HttpRequest包的默认设置
   })

   // 设置Cookies
   req.SetCookies(map[string]string{
      "sessionid": "LSIE89SFLKGHHASLC9EETFBVNOPOXNM",
   })

   postData := map[string]interface{}{
      "id":    1,
      "title": "csdn",
   }

   // GET 默认调用方法
   resp, err := req.Get("http://127.0.0.1:8000?name=flyfreely", nil)

   // GET 传参调用方法
   // 第2个参数默认为nil,也可以传参map[string]interface{}
   // 第2个参数不为nil时,会把传入的map以query传参的形式重新构造新url
   // 新的URL: http://127.0.0.1:8000?name=flyfreely&id=1&title=csdn

   //resp, err := req.Get("http://127.0.0.1:8000?name=flyfreely", postData)

   // POST 调用方法

   //resp, err := req.Post("http://127.0.0.1:8000", postData)

   if err != nil {
      log.Println(err)
      return
   }

   if resp.StatusCode() == 200 {
      body, err := resp.Body()
      
      if err != nil {
         log.Println(err)
         return
      }
      
      fmt.Println(string(body))
   }
}

猜你喜欢

转载自blog.csdn.net/flyfreelyit/article/details/80281467