Documentation ¶
Overview ¶
Package gresty for go http client support get,post,delete,patch,put,head,file method. go-resty/resty: https:// github.com/go-resty/resty
Index ¶
- type ApiStdRes
- type Option
- type Reply
- type RequestOption
- type Service
- func (s *Service) Do(method string, reqUrl string, opt *RequestOption) *Reply
- func (s *Service) GetResult(resp *resty.Response, err error) *Reply
- func (s *Service) NewRestyClient() *resty.Client
- func (s *Service) ParseData(d map[string]interface{}) map[string]string
- func (s *Service) Request(reqOpt *RequestOption, client *resty.Client) *Reply
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option func(s *Service)
Option service option.
func WithEnableKeepAlive ¶
WithEnableKeepAlive 是否长连接模式,默认短连接
type Reply ¶
type Reply struct { StatusCode int // http request 返回status code Err error // 请求过程中,发生的error Body []byte // 返回的body内容 }
Reply 请求后的结果 statusCode,body,error.
type RequestOption ¶
type RequestOption struct { Method string // 请求的方法 Url string // 请求url RetryCount int // 重试次数 RetryWaitTime time.Duration // 重试间隔,默认100ms RetryMaxWaitTime time.Duration // 重试最大等待间隔,默认2s RetryConditions []resty.RetryConditionFunc // 重试条件,是一个函数切片 Params map[string]interface{} // get,delete的Params参数 Data map[string]interface{} // post请求form data表单数据 Headers map[string]interface{} // header头信息 // cookie参数设置 Cookies map[string]interface{} // cookie信息 CookiePath string // 可选参数 CookieDomain string // cookie domain可选 CookieMaxAge int // cookie MaxAge CookieHttpOnly bool // cookie httpOnly // 支持post,put,patch以json格式传递,[]int{1, 2, 3},map[string]string{"a":"b"}格式 // json支持[],{}数据格式,主要是golang的基本数据类型,就可以 // 直接调用SetBody方法,自动添加header头"Content-Type":"application/json" Json interface{} // 支持文件上传的参数 FileName string // 文件名称 FileParamName string // 文件上传的表单file参数名称 }
RequestOption 请求参数设置
type Service ¶
type Service struct { BaseUri string // 请求地址url的前缀 Timeout time.Duration // 请求超时限制 Proxy string // 请求设置的http_proxy代理 EnableKeepAlive bool // 是否允许长连接方式请求接口,默认短连接方式 }
Service 请求句柄设置
func (*Service) Do ¶
func (s *Service) Do(method string, reqUrl string, opt *RequestOption) *Reply
Do 请求方法 method string 请求的方法get,post,put,patch,delete,head等 uri string 请求的相对地址,如果BaseUri为空,就必须是完整的url地址 opt *RequestOption 请求参数ReqOpt 短连接的形式请求api 关于如何关闭http connection https:// www.cnblogs.com/cobbliu/p/4517598.html
func (*Service) GetResult ¶
GetResult 处理请求的结果statusCode,body,error. 首先判断是否出错,然后判断http resp是否请求成功或有错误产生
func (*Service) NewRestyClient ¶
func (s *Service) NewRestyClient() *resty.Client
NewRestyClient 创建一个resty client 创建一个resty客户端,支持post,get,delete,head,put,patch,file文件上传等 可以快速使用go-resty/resty上面的方法 参考文档: https:// github.com/go-resty/resty
func (*Service) Request ¶
func (s *Service) Request(reqOpt *RequestOption, client *resty.Client) *Reply
Request 请求方法 resty.setBody: for struct and map data type defaults to 'application/json' SetBody method sets the request body for the request. It supports various realtime needs as easy. We can say its quite handy or powerful. Supported request body data types is `string`, `[]byte`, `struct`, `map`, `slice` and `io.Reader`. Body value can be pointer or non-pointer. Automatic marshalling for JSON and XML content type, if it is `struct`, `map`, or `slice`.
client.R().SetFormData method sets Form parameters and their values in the current request. It's applicable only HTTP method `POST` and `PUT` and requests content type would be set as `application/x-www-form-urlencoded`.