Documentation
¶
Overview ¶
Package goproxy HTTP(S)代理, 支持中间人代理解密HTTPS数据
Index ¶
- func CloneBody(b io.ReadCloser) (r io.ReadCloser, body []byte, err error)
- func CloneHeader(h http.Header) http.Header
- func CopyHeader(dst, src http.Header)
- type Context
- type DefaultDelegate
- func (h *DefaultDelegate) Auth(ctx *Context, rw http.ResponseWriter)
- func (h *DefaultDelegate) BeforeRequest(ctx *Context)
- func (h *DefaultDelegate) BeforeResponse(ctx *Context, resp *http.Response, err error)
- func (h *DefaultDelegate) Connect(ctx *Context, rw http.ResponseWriter)
- func (h *DefaultDelegate) ErrorLog(err error)
- func (h *DefaultDelegate) Finish(ctx *Context)
- func (h *DefaultDelegate) ParentProxy(req *http.Request) (*url.URL, error)
- type Delegate
- type Option
- type Proxy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CloneBody ¶ added in v1.0.1
func CloneBody(b io.ReadCloser) (r io.ReadCloser, body []byte, err error)
CloneBody 拷贝Body
func CloneHeader ¶ added in v1.0.1
CloneHeader 深拷贝Header
Types ¶
type Context ¶
type Context struct {
Req *http.Request
Data map[interface{}]interface{}
// contains filtered or unexported fields
}
Context 代理上下文
type DefaultDelegate ¶
type DefaultDelegate struct {
Delegate
}
DefaultDelegate 默认Handler什么也不做
func (*DefaultDelegate) Auth ¶
func (h *DefaultDelegate) Auth(ctx *Context, rw http.ResponseWriter)
func (*DefaultDelegate) BeforeRequest ¶
func (h *DefaultDelegate) BeforeRequest(ctx *Context)
func (*DefaultDelegate) BeforeResponse ¶
func (h *DefaultDelegate) BeforeResponse(ctx *Context, resp *http.Response, err error)
func (*DefaultDelegate) Connect ¶
func (h *DefaultDelegate) Connect(ctx *Context, rw http.ResponseWriter)
func (*DefaultDelegate) ErrorLog ¶
func (h *DefaultDelegate) ErrorLog(err error)
func (*DefaultDelegate) Finish ¶
func (h *DefaultDelegate) Finish(ctx *Context)
func (*DefaultDelegate) ParentProxy ¶
type Delegate ¶
type Delegate interface {
// Connect 收到客户端连接
Connect(ctx *Context, rw http.ResponseWriter)
// Auth 代理身份认证
Auth(ctx *Context, rw http.ResponseWriter)
// BeforeRequest HTTP请求前 设置X-Forwarded-For, 修改Header、Body
BeforeRequest(ctx *Context)
// BeforeResponse 响应发送到客户端前, 修改Header、Body、Status Code
BeforeResponse(ctx *Context, resp *http.Response, err error)
// ParentProxy 上级代理
ParentProxy(*http.Request) (*url.URL, error)
// Finish 本次请求结束
Finish(ctx *Context)
// 记录错误信息
ErrorLog(err error)
}
type Option ¶
type Option func(*options)
func WithDecryptHTTPS ¶
WithDecryptHTTPS 中间人代理, 解密HTTPS, 需实现证书缓存接口
func WithDisableKeepAlive ¶
WithDisableKeepAlive 连接是否重用
Click to show internal directories.
Click to hide internal directories.