go http请求库HttpRequest
2021-06-04 07:01
标签:pass pve return 设置 链接 sign 需要 string 认证 原文链接 目录 go get https://github.com/kirinlabs/HttpRequest 导入HttpRequest 实例化 Get请求 然后,尝试获取某个网页。我们来获取 Github 的公共时间线 返回一个res的Response对象和err的Error对象 Post 请求 也可以不用实例化,直接发送请求 快速发送Get请求 快速发送Post请求 快速发送JSON请求 你想为URL的查询字符串(query string)传递数据。如:手工构建URL,http://www.baidu.com/index?key=value。HttpRequest允许你使用第2个参数以字符串"id=100&name=github"或map[string]interface{}{"id":10,"name":"github"}字典的形式把数据传递给URL: 手工传参 字符串传参 map传参 能读取服务器响应的内容 获取服务器返回的内容 获取服务器响应状态码 获取服务器响应Headers 返回一个map[string]string的字典 获取请求响应时间 HttpRequest内置JSON解码,来解析JSON数据 如果JSON解码失败,会返回一个err错误 如果想为请求添加HTTP头部信息,只需要简单的传一个map给SetHeaders方法 注:所有header值必须是字符串,SetHeaders可以多次调用,如果Key重复则会覆盖前面设置的值 如果想为请求添加HTTP头部信息,只需要简单的传一个map给SetHeaders方法 如果想以json方式发送请求,HttpRequest支持2种方式 设置Header头部信息 调用req.JSON()内置方法 当请求https协议时提示x509: certificate signed by unknown authority时,可关闭证书验证 而且还支持连接操作 go http请求库HttpRequest 标签:pass pve return 设置 链接 sign 需要 string 认证 原文地址:https://www.cnblogs.com/-wenli/p/12344584.html
安装
发送请求
import "github.com/kirinlabs/HttpRequest"
req := HttpRequest.NewRequest()
res,err := req.Get("https://api.github.com/events")
//无参请求
res,err := req.Post("https://www.baidu.com")
//请求体为文本
res,err := req.Post("https://www.baidu.com","hello")
//请求体为Json字符串
res,err := req.Post("https://www.baidu.com","{\"name\":\"github\"}")
//map传参
res.err := req.Post("https://www.baidu.com",map[string]interface{}{
"name":"github",
"type":1,
})
res,err := HttpRequest.Get("https://www.baidu.com")
res,err := HttpRequest.Get("https://www.baidu.com","title=baidu")
res,err := HttpRequest.Post("https://www.baidu.com")
res,err := HttpRequest.Post("https://www.baidu.com","title=baidu&type=pdf")
res,err := HttpRequest.Post("https://www.baidu.com",map[string]interface{}{
"title":"baidu",
})
res,err := HttpRequest.JSON().Post("https://www.baidu.com",map[string]interface{}{
"title":"baidu",
})
res,err := HttpRequest.JSON().Post("https://www.baidu.com",`{"title":"baidu","type":"pdf"}`)
传递URL参数
res,err := req.Get("https://www.baidu.com/index?name=github")
res,err := req.Get("https://www.baidu.com/index?name=github","id=100&type=1")
res,err := req.Get("https://www.baidu.com/index?name=github",map[string]interface{}{
"id":10,
"type":1,
})
响应内容
res,err := req.Post("https://api.github.com/events")
body,err := res.Body()
fmt.Println(string(body))
res.StatusCode()
res.Headers()
res.Time()
Json响应内容
//Format the json return value
body, err := res.Json()
fmt.Println(body)
定制请求头
req.SetHeaders(map[string]string{
"Content-Type":"application/json",
"Source":"api",
})
BasicAuth 认证
req.SetBasicAuth("username","password")
JSON请求
req.SetHeaders(map[string]string{"Content-Type":"application/json"})
req.Post("https://www.baidu.com","{\"name\":\"github\"}")
//直接发磅Json字符串参数
res,err := req.JSON().Post("https://www.baidu.com","{\"name\":\"github\"}")
//自动将Map以Json方式发送参数
res,err := req.JSON().Post("https://www.baidu.com",map[string]interface{}{
"name":"github"
})
Cookie
req.SetCookies(map[string]string{
"name":"jason"
})
超时
req.SetTimeout(5)
关闭证书验证
req.SetTLSClient(&tls.Config{InsecureSkipVerify: true})
调试模式
req.Debug(true)
连接操作
req := HttpRequest.NewRequest().Debug(true).SetTimeout(5).SetHeader()
Respone对象
获取返回的Response对象
resp.Response()
获取返回码
resp.StatusCode()
获取Body主体信息
resp.Body()
获取请求耗时
resp.Time() string 单位是毫秒
获取真实Url
res.Url()
文章标题:go http请求库HttpRequest
文章链接:http://soscw.com/index.php/essay/90284.html