gresty

package
v1.10.8 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2020 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