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()
设置超时:
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)) } }