gresty

package
v1.9.1 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 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/thinkgo/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.

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