几款不错的golang应用包 持续更新中~~~
GET、POST、PUT、DELETE、HEAD、PATCH、OPTIONS等简单且可链式调用的设置和请求方法。
请求体可以是字符串、[]byte、结构体、map、切片和io.Reader。
自动检测Content-Type。
对于io.Reader,无需缓冲处理。
通过Request.RawRequest,在中间件和请求执行期间可以访问原生的*http.Request实例。
可以通过Request.RawRequest.GetBody()多次读取请求体。
响应对象提供更多可能性。
作为[]byte数组访问-响应.Body()或作为字符串访问-响应.String()。
了解响应时间(response.Time())以及响应时刻(response.ReceivedAt())。
JSON和XML内容类型的自动编组和解组。
如果您提供没有标题Content-Type的struct/map,则默认为JSON。
有关自动解组,请参考-
成功情况下Request.SetResult()和Response.Result()。
错误情况下Request.SetError()和Response.Error()。
支持RFC7807-application/problem+json和application/problem+xml。
Resty提供覆盖JSON Marshal/Unmarshal和XML Marshal/Unmarshal的选项。
通过multipart/form-data轻松上传一个或多个文件。
自动检测文件内容类型。
请求URL路径参数(也称为URI参数)。
带有重试条件函数引用的Backoff重试机制。
Resty客户端HTTP和REST请求和响应中间件。
支持Request.SetContext。
BasicAuth和Bearer令牌的授权选项。
为所有请求或特定请求设置请求ContentLength值。
自定义根证书和客户端证书。
直接将HTTP响应下载/保存到文件中,类似于curl -o标志。请参阅SetOutputDirectory和SetOutput。
您的请求和CookieJar支持Cookie。
基于SRV记录的请求,而不是主机URL。
客户端设置,如Timeout、RedirectPolicy、Proxy、TLSClientConfig、Transport等。
可选地允许使用负载进行GET请求,请参见SetAllowGetMethodPayload。
支持向resty注册外部JSON库,详见如何使用。
如果需要,可以公开响应读取器而不读取响应(无自动解组),详见如何使用。
当响应Content-Type头缺失时,指定预期Content-Type的选项。参见#92。
Resty设计
如果需要,可以在客户端级别设置和覆盖请求级别。
请求和响应中间件
如果需要,可以创建多个客户端resty.New()。
支持http.RoundTripper实现,请参见SetTransport。
goroutine并发安全。
Resty客户端跟踪,请参见Client.EnableTrace和Request.EnableTrace。
从v2.4.0开始,跟踪信息包含一个RequestAttempt值,Request对象包含一个Attempt属性。
调试模式-干净且信息丰富的日志演示。
Gzip- Go会自动处理,resty也有回退处理。
与HTTP/2和HTTP/1.1配合良好。
Bazel支持
轻松模拟Resty进行测试,例如。
经过充分测试的客户端库。