request

package
v0.0.0-...-796898b Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2019 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

Package request 请求接受处理包

Index

Constants

View Source
const (
	// TransCallbackRequest 转发请求,需要考虑是否携带上一请求的 Header 和 Cookies
	TransCallbackRequest = iota
	// DirectJSONRequest 直接请求,自处理 Header 和 Cookies
	DirectJSONRequest
	// DirectTextRequest 直接请求,自处理 Header 和 Cookies
	DirectTextRequest
)

Variables

View Source
var (
	// LB 是否开启负载均衡
	LB = false
	// Route 是否开启网关路由
	Route = false
)

Functions

func FormatURL

func FormatURL(context *gin.Context, service *server.Service) string

FormatURL 将注册到服务的 service host 和 port 组装成完成的 URL

func GetAccessTokenFromReq

func GetAccessTokenFromReq(c *gin.Context) (token string)

GetAccessTokenFromReq 从Header或者Cookie中获取到用户的access_token

func GetCookieByName

func GetCookieByName(cookies []*http.Cookie, cookieName string) *http.Cookie

GetCookieByName 忽略大小写,找到指定的cookie

Types

type Handler

type Handler interface {
	// ObtainRemoteServer 获取本次 http 请求服务根路径 如:localhost:8080
	ObtainRemoteServer() string

	// ObtainURI 获取本次 http 请求服务方法路径 如:/user/login
	ObtainURI() string

	// ObtainBody 获取本次 http 请求 body io
	ObtainBody() io.Reader

	// ObtainHeader 获取本次 http 请求 header
	ObtainHeader() http.Header

	// ObtainCookies 获取本次 http 请求 cookies
	ObtainCookies() []*http.Cookie
}

Handler http 处理请求发送内容接口

type Request

type Request struct {
	// contains filtered or unexported fields
}

Request 提供实例化调用请求方法,并内置返回策略

func SyncPoolGetRequest

func SyncPoolGetRequest() *Request

SyncPoolGetRequest 提供实例化调用请求方法,并内置返回策略

func (*Request) Call

func (request *Request) Call(context *gin.Context, method string, remote string, uri string)

Call 请求转发处理方案

context:原请求上下文

method:即将转发的请求方法

remote:请求转发主体域名

uri:请求转发主体方法路径

func (*Request) CallByURL

func (request *Request) CallByURL(context *gin.Context, method string, url string)

CallByURL 请求转发处理方案

context:原请求上下文

method:即将转发的请求方法

url:完整转发路径

func (*Request) Callback

func (request *Request) Callback(context *gin.Context, method string, remote string, uri string, callback func() *response.Result)

Callback 请求转发处理方案

context:原请求上下文

method:即将转发的请求方法

remote:请求转发主体域名

uri:请求转发主体方法路径

callback:请求转发失败后回调降级策略

callback *response.Result 请求转发降级后返回请求方结果对象

func (*Request) CallbackByURL

func (request *Request) CallbackByURL(context *gin.Context, method string, url string, callback func() *response.Result)

CallbackByURL 请求转发处理方案

context:原请求上下文

method:即将转发的请求方法

url:完整转发路径

callback:请求转发失败后回调降级策略

callback *response.Result 请求转发降级后返回请求方结果对象

func (*Request) RestJSON

func (request *Request) RestJSON(method string, remote string, uri string, param interface{}) ([]byte, error)

RestJSON JSON 请求

method:请求方法

remote:请求主体域名

uri:请求主体方法路径

param 请求对象

func (*Request) RestJSONByURL

func (request *Request) RestJSONByURL(method string, url string, param interface{}) ([]byte, error)

RestJSONByURL JSON 请求

method:请求方法

url:完整请求路径

param 请求对象

func (*Request) RestText

func (request *Request) RestText(method string, remote string, uri string, values url.Values) ([]byte, error)

RestText TEXT 请求

method:请求方法

remote:请求主体域名

uri:请求主体方法路径

values 请求参数

func (*Request) RestTextByURL

func (request *Request) RestTextByURL(method string, url string, values url.Values) ([]byte, error)

RestTextByURL TEXT 请求

method:请求方法

url:完整请求路径

param 请求对象

type Rest

type Rest interface {
	// Post 发起 Post 请求,body 为请求后的返回内容,err 指出请求出错原因
	Post(reqType int) (resp *http.Response, err error)

	// Put 发起 Put 请求,body 为请求后的返回内容,err 指出请求出错原因
	Put(reqType int) (resp *http.Response, err error)

	// Delete 发起 Delete 请求,body 为请求后的返回内容,err 指出请求出错原因
	Delete(reqType int) (resp *http.Response, err error)

	// Patch 发起 Patch 请求,body 为请求后的返回内容,err 指出请求出错原因
	Patch(reqType int) (resp *http.Response, err error)

	// Options 发起 Options 请求,body 为请求后的返回内容,err 指出请求出错原因
	Options(reqType int) (resp *http.Response, err error)

	// Head 发起 Head 请求,body 为请求后的返回内容,err 指出请求出错原因
	Head(reqType int) (resp *http.Response, err error)

	// Connect 发起 Connect 请求,body 为请求后的返回内容,err 指出请求出错原因
	Connect(reqType int) (resp *http.Response, err error)

	// Trace 发起 Trace 请求,body 为请求后的返回内容,err 指出请求出错原因
	Trace(reqType int) (resp *http.Response, err error)

	// Get 发起 Get 请求,body 为请求后的返回内容,err 指出请求出错原因
	Get(reqType int) (resp *http.Response, err error)
}

Rest http 请求方法接口

type RestHandler

type RestHandler struct {
	RemoteServer string
	URI          string
	Body         io.ReadCloser
	Header       http.Header
	Cookies      []*http.Cookie
}

RestHandler 处理请求发送内容

type RestJSONHandler

type RestJSONHandler struct {
	RestHandler
	Param interface{}
}

RestJSONHandler 处理 json 请求发送内容

func (*RestJSONHandler) Connect

func (handler *RestJSONHandler) Connect(reqType int) (resp *http.Response, err error)

Connect 发起 Connect 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestJSONHandler) Delete

func (handler *RestJSONHandler) Delete(reqType int) (resp *http.Response, err error)

Delete 发起 Delete 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestJSONHandler) Get

func (handler *RestJSONHandler) Get(reqType int) (resp *http.Response, err error)

Get 发起 Get 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestJSONHandler) Head

func (handler *RestJSONHandler) Head(reqType int) (resp *http.Response, err error)

Head 发起 Head 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestJSONHandler) ObtainBody

func (handler *RestJSONHandler) ObtainBody() io.Reader

ObtainBody 获取本次 http 请求 body io

func (*RestJSONHandler) ObtainCookies

func (handler *RestJSONHandler) ObtainCookies() []*http.Cookie

ObtainCookies 获取本次 http 请求 cookies

func (*RestJSONHandler) ObtainHeader

func (handler *RestJSONHandler) ObtainHeader() http.Header

ObtainHeader 获取本次 http 请求 header

func (*RestJSONHandler) ObtainRemoteServer

func (handler *RestJSONHandler) ObtainRemoteServer() string

ObtainRemoteServer 获取本次 http 请求服务根路径 如:localhost:8080

func (*RestJSONHandler) ObtainURI

func (handler *RestJSONHandler) ObtainURI() string

ObtainURI 获取本次 http 请求服务方法路径 如:/user/login

func (*RestJSONHandler) Options

func (handler *RestJSONHandler) Options(reqType int) (resp *http.Response, err error)

Options 发起 Options 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestJSONHandler) Patch

func (handler *RestJSONHandler) Patch(reqType int) (resp *http.Response, err error)

Patch 发起 Patch 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestJSONHandler) Post

func (handler *RestJSONHandler) Post(reqType int) (resp *http.Response, err error)

Post 发起 Post 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestJSONHandler) Put

func (handler *RestJSONHandler) Put(reqType int) (resp *http.Response, err error)

Put 发起 Put 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestJSONHandler) Trace

func (handler *RestJSONHandler) Trace(reqType int) (resp *http.Response, err error)

Trace 发起 Trace 请求,body 为请求后的返回内容,err 指出请求出错原因

type RestTextHandler

type RestTextHandler struct {
	RestHandler
	Values url.Values
}

RestTextHandler 处理 text 请求发送内容

func (*RestTextHandler) Connect

func (handler *RestTextHandler) Connect(reqType int) (resp *http.Response, err error)

Connect 发起 Connect 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTextHandler) Delete

func (handler *RestTextHandler) Delete(reqType int) (resp *http.Response, err error)

Delete 发起 Delete 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTextHandler) Get

func (handler *RestTextHandler) Get(reqType int) (resp *http.Response, err error)

Get 发起 Get 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTextHandler) Head

func (handler *RestTextHandler) Head(reqType int) (resp *http.Response, err error)

Head 发起 Head 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTextHandler) ObtainBody

func (handler *RestTextHandler) ObtainBody() io.Reader

ObtainBody 获取本次 http 请求 body io

func (*RestTextHandler) ObtainCookies

func (handler *RestTextHandler) ObtainCookies() []*http.Cookie

ObtainCookies 获取本次 http 请求 cookies

func (*RestTextHandler) ObtainHeader

func (handler *RestTextHandler) ObtainHeader() http.Header

ObtainHeader 获取本次 http 请求 header

func (*RestTextHandler) ObtainRemoteServer

func (handler *RestTextHandler) ObtainRemoteServer() string

ObtainRemoteServer 获取本次 http 请求服务根路径 如:localhost:8080

func (*RestTextHandler) ObtainURI

func (handler *RestTextHandler) ObtainURI() string

ObtainURI 获取本次 http 请求服务方法路径 如:/user/login

func (*RestTextHandler) Options

func (handler *RestTextHandler) Options(reqType int) (resp *http.Response, err error)

Options 发起 Options 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTextHandler) Patch

func (handler *RestTextHandler) Patch(reqType int) (resp *http.Response, err error)

Patch 发起 Patch 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTextHandler) Post

func (handler *RestTextHandler) Post(reqType int) (resp *http.Response, err error)

Post 发起 Post 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTextHandler) Put

func (handler *RestTextHandler) Put(reqType int) (resp *http.Response, err error)

Put 发起 Put 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTextHandler) Trace

func (handler *RestTextHandler) Trace(reqType int) (resp *http.Response, err error)

Trace 发起 Trace 请求,body 为请求后的返回内容,err 指出请求出错原因

type RestTransHandler

type RestTransHandler struct {
	RestHandler
}

RestTransHandler 处理请求转发发送内容

func (*RestTransHandler) Connect

func (handler *RestTransHandler) Connect(reqType int) (resp *http.Response, err error)

Connect 发起 Connect 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTransHandler) Delete

func (handler *RestTransHandler) Delete(reqType int) (resp *http.Response, err error)

Delete 发起 Delete 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTransHandler) Get

func (handler *RestTransHandler) Get(reqType int) (resp *http.Response, err error)

Get 发起 Get 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTransHandler) Head

func (handler *RestTransHandler) Head(reqType int) (resp *http.Response, err error)

Head 发起 Head 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTransHandler) ObtainBody

func (handler *RestTransHandler) ObtainBody() io.Reader

ObtainBody 获取本次 http 请求 body io

func (*RestTransHandler) ObtainCookies

func (handler *RestTransHandler) ObtainCookies() []*http.Cookie

ObtainCookies 获取本次 http 请求 cookies

func (*RestTransHandler) ObtainHeader

func (handler *RestTransHandler) ObtainHeader() http.Header

ObtainHeader 获取本次 http 请求 header

func (*RestTransHandler) ObtainRemoteServer

func (handler *RestTransHandler) ObtainRemoteServer() string

ObtainRemoteServer 获取本次 http 请求服务根路径 如:localhost:8080

func (*RestTransHandler) ObtainURI

func (handler *RestTransHandler) ObtainURI() string

ObtainURI 获取本次 http 请求服务方法路径 如:/user/login

func (*RestTransHandler) Options

func (handler *RestTransHandler) Options(reqType int) (resp *http.Response, err error)

Options 发起 Options 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTransHandler) Patch

func (handler *RestTransHandler) Patch(reqType int) (resp *http.Response, err error)

Patch 发起 Patch 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTransHandler) Post

func (handler *RestTransHandler) Post(reqType int) (resp *http.Response, err error)

Post 发起 Post 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTransHandler) Put

func (handler *RestTransHandler) Put(reqType int) (resp *http.Response, err error)

Put 发起 Put 请求,body 为请求后的返回内容,err 指出请求出错原因

func (*RestTransHandler) Trace

func (handler *RestTransHandler) Trace(reqType int) (resp *http.Response, err error)

Trace 发起 Trace 请求,body 为请求后的返回内容,err 指出请求出错原因

type TPort

type TPort struct {
	Pool           *x509.CertPool
	ConnectTimeout time.Duration
	KeepAlive      time.Duration
	Transport      *http.Transport
}

TPort HTTPS请求管理对象

func GetTPInstance

func GetTPInstance() *TPort

GetTPInstance 获取HTTPS请求管理对象 TPort 单例

func (*TPort) Instantiate

func (t *TPort) Instantiate()

Instantiate 实例化 Transport 作为客户端可用HTTP/HTTPS对象

func (*TPort) RootCACerts

func (t *TPort) RootCACerts(caCertPaths []string) *TPort

RootCACerts 初始化TLS作为客户端可用HTTPS证书池,用于对服务端验证

caCertPaths 作为客户端发起 HTTPS 请求时所需客户端证书路径数组

func (*TPort) Timeout

func (t *TPort) Timeout(connectTimeout, keepAlive time.Duration) *TPort

Timeout 设置 Transport 作为客户端请求超时设定

connectTimeout 拨号等待连接完成的最长时间,TCP超时的时间一般在3s,默认3s

keepAlive 指定保持活动网络连接的时间,如果为0,则不启用keep-alive,默认30s

Jump to

Keyboard shortcuts

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