Go語言之Golang http請求第三方庫HttpRequest
Golang的第三方http請求包 https://github.com/kirinlabs/HttpRequest
具有快速構建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