Go语言之Golang http请求第三方库HttpRequest


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

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

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

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

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

实例化: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))
   }
}

Go语言之Golang http请求第三方库HttpRequest介绍到这里,更多go学习请参考编程字典go教程 和问答部分,谢谢大家对编程字典的支持。


原文链接:https://blog.csdn.net/sinat_34166518/article/details/83150862?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163731001816780255222933%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163731001816780255222933&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-30-83150862.pc_v2_rank_blog_default&utm_term=go&spm=1018.2226.3001.4450