Documentation ¶
Overview ¶
HTTPS请求-带缓存、选项的V2版
Index ¶
- func ClearQuestLog()
- func Gatway(h http.Handler, intef GatwayInterface) http.Handler
- func SetDefaultAc(ac string)
- func SetDefaultAcl(al string)
- func SetDefaultCacheFunc(t CacheInterface)
- func SetDefaultCacheTime(t time.Duration)
- func SetDefaultCt(ct string)
- func SetDefaultTimeOut(t time.Duration)
- func SetDefaultUa(ua string)
- func SetDefaultUnCookieJar(s bool)
- func SetJar(jar *cookiejar.Jar)
- func SetQuestLog(f func(c *CURL))
- type CURL
- func (c *CURL) AddFile(form_name, file_name string) *CURL
- func (c *CURL) AddFileByte(form_name string, file_byte []byte) *CURL
- func (c *CURL) Authorization(token string) *CURL
- func (c *CURL) Cookie() []*http.Cookie
- func (c *CURL) Download(file string) *CURL
- func (c *CURL) DownloadIO(f io.Writer) *CURL
- func (c *CURL) Get() *CURL
- func (c *CURL) Header(h map[string]string) *CURL
- func (c *CURL) HeaderKV(k, v string) *CURL
- func (curl *CURL) Json(obj any, first ...string) error
- func (curl *CURL) JsonData(obj any) error
- func (c *CURL) Param(m map[string]string) *CURL
- func (c *CURL) ParamJson(m map[string]any) *CURL
- func (c *CURL) ParamJsonAny(m any) *CURL
- func (c *CURL) ParamKV(k, v string) *CURL
- func (c *CURL) Post() *CURL
- func (c *CURL) PostJson() *CURL
- func (c *CURL) WithOption(opts ...OptionFunc) *CURL
- type CacheInterface
- type GatwayInterface
- type Option
- type OptionFunc
- func WithCache(t time.Duration) OptionFunc
- func WithContext(ctx context.Context) OptionFunc
- func WithCookie(jar *cookiejar.Jar) OptionFunc
- func WithHosts(host map[string]string) OptionFunc
- func WithHttpsContinue(c bool) OptionFunc
- func WithIgnoreHeader(k string) OptionFunc
- func WithNoLog(l bool) OptionFunc
- func WithTimeOut(t time.Duration) OptionFunc
- type WGroup
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Gatway ¶
func Gatway(h http.Handler, intef GatwayInterface) http.Handler
网址转发操作【此操作暂不支持通配网址信息】 比如,在gin框架中使用时,用以下方式进行嵌套:
wraphh类的来源:import wraphh "github.com/turtlemonvh/gin-wraphh" r.GET("xxxx", wraphh.WrapHH(func(h http.Handler) http.Handler { // 假设声明实现该接口的类型为XXX target_urls := XXX{} return Gatway(h, target_urls) })) h HTTP请求中间件会传入的参数 intef HTTP转发过程中的数据交互钩子
func SetDefaultAcl ¶ added in v0.2.94
func SetDefaultAcl(al string)
设置默认的accept-language请求头
al 待设置的请求头
func SetDefaultCacheFunc ¶ added in v0.2.39
func SetDefaultCacheFunc(t CacheInterface)
设置缓存信息
t 实现缓存方法的接口信息
func SetDefaultCt ¶ added in v0.2.94
func SetDefaultCt(ct string)
设置默认的Content-Type请求头
ct Content-Type请求头
func SetDefaultUnCookieJar ¶ added in v0.2.41
func SetDefaultUnCookieJar(s bool)
设置默认是否存储cookie
s 是否存储cookie值,默认存储,可以使用此方法跳过cookie的存储
func SetQuestLog ¶ added in v0.2.39
func SetQuestLog(f func(c *CURL))
设置Quest请求日志
f 日志记录函数【此函数会记录多个,所以请勿一直调用SetQuestLog进行插入日志记录函数】
Types ¶
type CURL ¶
type CURL struct { Uri string `json:"uri"` // 请求网址 Param_quest map[string]string `json:"param"` // 请求参数 HttpCode int `json:"http_code"` // HTTP返回的code值 ParamJson_quest map[string]any `json:"param_json"` // JSON推送参数 Body string `json:"body"` // 返回值 Error error `json:"error"` // 错误信息 Header_quest map[string]string `json:"header"` // 请求Header头 CreateTime time.Time `json:"create_time"` // 实例创建时间 StartTime time.Time `json:"start_time"` // 请求开始时间 EndTime time.Time `json:"end_time"` // 请求结束时间 OverTime time.Time `json:"over_time"` // JSON提取结束时间 ClientIp string `json:"client_ip"` // 请求的客户端IP【兼容日志处理模块的预留字段】 Cookie_quest []string `json:"cookie"` // HTTP网址返回的Set-Cookie相应头 Version float64 `json:"version"` // HTTP返回的Header头中的版本信息 // contains filtered or unexported fields }
网址服务对象
func New ¶ added in v0.2.39
func New(url string, opts ...OptionFunc) *CURL
声明URL请求结构信息
url 要请求的网址信息 opts 可选参数,针对此网址进行的配置项追加
func (*CURL) AddFileByte ¶ added in v0.2.70
添加待上传的文件-以字节流的形式进行添加 PS: 因暂未找到直接写入字节流的形式上传,所以此函数调用了临时文件进行写入,然后再请求的时候进行读取,效率会稍有降低,建议正常上传时直接读取文件进行上传
form_name form表单名 file_byte 文件字节流
func (*CURL) Cookie ¶ added in v0.2.39
获取域名下的cookie信息 如果使用了jar进行cookie管理,会直接返回jar中该域名下的cookie 如果未使用jar进行管理,则会获取Cookie_quest的值,然后使用;=进行分割,以提取其中的key/value值 响应的,如果未使用jar进行管理,此处会手动循环cookie中的值进行strings切分,所以此处速度会稍慢一些
func (*CURL) Json ¶
获取JSON中的数据
obj 要获取的obj对象,需要提供给json.Unmarshal first... simplejson.GetPath传入的string列表
func (*CURL) ParamJson ¶
JSON格式的请求参数追加
m 追加的参数列表(可直接传入map[string]any{"_":xxx}(会在map最外层有且仅有_下标时才会直接取其内容进行传输))
func (*CURL) ParamJsonAny ¶ added in v0.2.39
JSON格式的请求参数追加
m 追加的参数列表(此处为简写map[string]any{"_":any}的写法)
func (*CURL) WithOption ¶ added in v0.2.39
func (c *CURL) WithOption(opts ...OptionFunc) *CURL
设置Option选项[此参数需要在Get/Post/PostJson之前进行调用,若在之后调用的话会失去作用]
opts 可选参数,针对此网址进行的配置项追加
type CacheInterface ¶ added in v0.2.39
type CacheInterface interface { Get(name string) string // 获取缓存值,缓存未找到的话请返回空字符串 Set(name string, val string, t time.Duration) // 设置缓存值,可能存在部分无法在string中正常显示的字符串 }
缓存钩子
type GatwayInterface ¶
type GatwayInterface interface { // 超时时间 Timeout() time.Duration // 长连接超时时间 KeepAlive() time.Duration // TLS握手超时时间 TLSHandshakeTimeout() time.Duration // 负载均衡的URL列表[此处采用随机的方式进行请求访问] Urls() []string // 请求的网址信息[可做额外处理,如追加header参数等](此处不建议重写URL) // 追加Header方法:request.Header.Set("","") QuestUrl(request *http.Request) // 响应处理[可做额外处理,如重写返回信息等](socket长连接不支持此方法) // 重写方法:将重写结果作为[]byte进行返回(若此值为nul则表示不进行重写) ResponseUrl(response *http.Response) ([]byte, error) // 错误处理方法 // 错误回调 :关闭real_server时测试,错误回调 // 范围:transport.RoundTrip发生的错误、以及ModifyResponse发生的错误 Error(w http.ResponseWriter, r *http.Request, err error) }
传入的接口信息,用于处理响应的回调操作
type Option ¶ added in v0.2.39
type Option struct {
// contains filtered or unexported fields
}
外部选项传参结构[可选参数]
type OptionFunc ¶ added in v0.2.39
type OptionFunc func(c *Option)
选项设置参数,用于设置本次请求中的选项信息
func WithCache ¶ added in v0.2.39
func WithCache(t time.Duration) OptionFunc
设置缓存时间
t 设置缓存时间,0表示不设置缓存
func WithContext ¶ added in v0.2.94
func WithContext(ctx context.Context) OptionFunc
使用context.Context来控制进程请求
ctx 控制请求的context结构
func WithCookie ¶ added in v0.2.41
func WithCookie(jar *cookiejar.Jar) OptionFunc
使用不同的cookiejar包
jar 存储cookie的依赖结构[传入nil表示不存储cookie]
func WithHosts ¶ added in v0.2.94
func WithHosts(host map[string]string) OptionFunc
导入程序指定的host对(此处的域名、IP对应关系和host文件中的对应关系) 如果host中写入端口的话,域名和IP都需要对应上端口才行,如:"xiaoyutab.cn:443": "120.24.39.208:443"
host 待导入的主机对,格式为 "域名[:端口]": "主机IP[:端口]"
func WithHttpsContinue ¶ added in v0.2.39
func WithHttpsContinue(c bool) OptionFunc
设置跳过https证书验证
c 是否跳过
func WithIgnoreHeader ¶ added in v0.2.39
func WithIgnoreHeader(k string) OptionFunc
设置忽略header头日志
k header请求头的下标标识
type WGroup ¶ added in v0.2.55
type WGroup struct { Limit int // 最大并发携程限制,默认10000(此数不宜设置过小,设置过小的话会导致进程阻塞在通道推入中,无法监控context的状态控制) // contains filtered or unexported fields }
分组请求结构 每个请求组只可运行一次
func Group ¶ added in v0.2.55
func Group(fun ...func()) *WGroup
HTTP请求组,将一组HTTP请求放置在一起,进行并发请求,直到最后一个请求完成再往下进行处理 该程序的耗时与传入的具体函数有关,一般情况下比传入的程序的最大耗时再大一些
fun 待处理的函数请求