gResty

package module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2019 License: MIT Imports: 10 Imported by: 0

README

gResty package

go http client library,base on go-resty.
go-resty: https://github.com/go-resty/resty

usage

    go version 1.11+

    import "github.com/daheige/gResty"

    s := &gResty.Service{
        BaseUri: "http://localhost:1338/",
        Timeout: 2 * time.Second,
    }

    opt := &gResty.ReqOpt{
        Data: map[string]interface{}{
            "id": "1234",
        },
        RetryCount:2,
    }

    res := s.Do("post", "v1/data", opt)
    log.Println("err: ", res.Err)
    log.Println("body:", res.Text())

    For other usage, please see the method in the gResty source package.

License

MIT

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClient

func NewClient() *resty.Client

NewClient创建一个resty客户端,支持post,get,delete,head,put,patch,file文件上传等 可以快速使用go-resty/resty上面的方法 参考文档: https://github.com/go-resty/resty

Types

type ApiStdRes

type ApiStdRes struct {
	Code    int
	Message string
	Data    interface{}
}

ApiStdRes 标准的api返回格式

type Reply

type Reply struct {
	Err  error  //请求过程中,发生的error
	Body []byte //返回的body内容
}

Reply 请求后的结果

func (*Reply) Json

func (r *Reply) Json(data interface{}) error

Json 将响应的结果Reply解析到data 对返回的Reply.Body做json反序列化处理

func (*Reply) Text

func (r *Reply) Text() string

Text 返回Reply.Body文本格式

type ReqOpt

type ReqOpt struct {
	//重试机制设置
	RetryCount       int           //重试次数
	RetryWaitTime    time.Duration //重试间隔,默认100ms
	RetryMaxWaitTime time.Duration //重试最大等待间隔,默认2s

	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参数名称
}

ReqOpt 请求参数设置

func (ReqOpt) ParseData

func (ReqOpt) ParseData(d map[string]interface{}) map[string]string

ParseData 解析ReqOpt Params和Data

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 *ReqOpt) *Reply

Do 请求方法 method string 请求的方法get,post,put,patch,delete,head等 uri string 请求的相对地址,如果BaseUri为空,就必须是完整的url地址 opt *ReqOpt 请求参数ReqOpt

func (*Service) GetResult

func (s *Service) GetResult(resp *resty.Response, err error) *Reply

GetData 处理请求的结果

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL