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

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

 

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

 

 

实例化:req := HttpRequest.NewRequest()

 

当请求https协议时提示x509: certificate signed by unknown authority时,可关闭证书验证

    req.SetTLSClient(&tls.Config{InsecureSkipVerify: true})

 

设置超时: req.SetTimeout(5)

 

打开调试模式:req.Debug(true)

 

设置Headers:

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


设置Cookies:    req.SetCookies(map[string]string{})

 

而且还支持连接操作

req := HttpRequest.NewRequest().Debug(true).SetTimeout(5).SetHeader()

 

获取返回的Response对象

    resp.Response()

 

获取返回码

    resp.StatusCode()

 

获取Body主体信息

    resp.Body() 

    返回[]byte和error

 

返回信息Json格式化

    body,err:=resp.Body()

    fmt.Pringln(resp.Json(body))

 

获取请求耗时

    resp.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))
 
      fmt.Println(resp.Json(body))
   }
}


原文:https://blog.csdn.net/flyfreelyit/article/details/80281467