HttpRequest

项目源码地址: https://github.com/kirinlabs/HttpRequest

具有快速构建HeadersCookies设置超时时间请求、耗时、打印请求信息等功能

安装:

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

发送请求 导入HttpRequest

import "github.com/kirinlabs/HttpRequest" 

实例化:

req := HttpRequest.NewRequest() 

然后,尝试获取某个网页。我们来获取 Github 的公共时间线

res,err := req.Get("https://api.github.com/events") 

返回一个res的Response对象和err的Error对象

自定义Transport

var transport *http.Transport
 
func init() {   
    transport = &http.Transport{
        DialContext: (&net.Dialer{
            Timeout:   30 * time.Second,
            KeepAlive: 30 * time.Second,
            DualStack: true,
        }).DialContext,
        MaxIdleConns:          100, 
        IdleConnTimeout:       90 * time.Second,
        TLSHandshakeTimeout:   5 * time.Second,
        ExpectContinueTimeout: 1 * time.Second,
    }
}
 
func demo(){
    // Use http.DefaultTransport
    res, err := HttpRequest.Get("http://127.0.0.1:8080")
 
    // Use custom Transport
    res, err := HttpRequest.Transport(transport).Get("http://127.0.0.1:8080")
}

Post 请求

也可以不用实例化直接发送请求

传递URL参数

你想为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的字典

获取请求响应时间:

Json响应内容

HttpRequest内置JSON解码,来解析JSON数据:

如果JSON解码失败,会返回一个err错误

定制请求头

如果想为请求添加HTTP头部信息,只需要简单的传一个map给SetHeaders方法

注:所有header值必须是字符串,SetHeaders可以多次调用,如果Key重复则会覆盖前面设置的值

BasicAuth 认证

如果想为请求添加HTTP头部信息,只需要简单的传一个map给SetHeaders方法

CookieJar

Proxy代理

通过代理Ip访问

JSON请求

如果想以json方式发送请求,HttpRequest支持2种方式

设置Header头部信息

调用req.JSON()内置方法

超时

关闭证书验证

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

调试模式

连接操作

而且还支持连接操作

Respone对象

获取返回的Response对象

获取返回码

获取Body主体信息

返回[]byte和error

获取请求耗时

单位是毫秒

获取真实Url

实例代码

最后更新于