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.