https

package
v0.2.66 Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2024 License: BSD-3-Clause-Clear Imports: 20 Imported by: 0

Documentation

Overview

HTTPS请求-带缓存、选项的V2版

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ClearQuestLog added in v0.2.39

func ClearQuestLog()

清除Quest请求日志记录的函数列表

func ClientClose deprecated added in v0.1.24

func ClientClose()

旧版接口兼容 重置_default配置项下的client客户端配置

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

func DownloadGet deprecated added in v0.1.6

func DownloadGet(file, url string, param, header map[string]string) error

GET下载文件

file	下载文件的存储文件名【如果存在会追加写入】
url		请求地址
param	请求参数
header	请求头,自动追加accept、Content-Type等属性

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

func DownloadPost deprecated added in v0.1.6

func DownloadPost(file, uri string, param, header map[string]string) error

POST下载文件

file	下载文件的存储文件名【如果存在会追加写入】
uri		请求地址
param	请求参数
header	请求头,自动追加accept、Content-Type等属性

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

func DownloadPostJson deprecated added in v0.1.6

func DownloadPostJson(file, url string, param map[string]any, header map[string]string) error

POSTJSON下载文件

file	下载文件的存储文件名【如果存在会追加写入】
url		请求地址
param	请求参数【如果不想封装外层map的话,可直接传入map[string]any{"_":xxx}(会在map最外层有且仅有_下标时才会直接取其内容进行传输)】
header	请求头,自动追加accept、Content-Type等属性

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

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 Regedit deprecated added in v0.0.19

func Regedit(c *Config)

注入配置项

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

func SetDefaultCacheFunc added in v0.2.39

func SetDefaultCacheFunc(t CacheInterface)

设置缓存信息

t	实现缓存方法的接口信息

func SetDefaultCacheTime added in v0.2.39

func SetDefaultCacheTime(t time.Duration)

设置默认的缓存时间 不建议设置此值,若确实需要缓存的话,建议针对URL地址进行配置缓存时间

t	缓存时间

func SetDefaultTimeOut added in v0.2.39

func SetDefaultTimeOut(t time.Duration)

设置默认的超时时间

t	超时时间

func SetDefaultUnCookieJar added in v0.2.41

func SetDefaultUnCookieJar(s bool)

设置默认是否存储cookie

s	是否存储cookie值,默认存储,可以使用此方法跳过cookie的存储

func SetJar added in v0.2.41

func SetJar(jar *cookiejar.Jar)

设置cookie存储的jar信息

jar	存储的jar信息,默认为nil,nil会获取新的cookiejar.New的jar结构体

func SetQuestLog added in v0.2.39

func SetQuestLog(f func(c *CURL))

设置Quest请求日志

f	日志记录函数【此函数会记录多个,所以请勿一直调用SetQuestLog进行插入日志记录函数】

func SwitchAddNoBody deprecated added in v0.2.8

func SwitchAddNoBody(h string)

添加不需要展示Body的URL网址

h	移除body的URL网址

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

func SwitchAddNoHeader deprecated added in v0.2.8

func SwitchAddNoHeader(h string)

添加不需要展示的Header头

h	要去除的header中的key标示

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

func SwitchClient deprecated added in v0.1.24

func SwitchClient(client *http.Client)

配置自定义的Http.Client配置项【一旦传入此配置项,将不再使用组件内的配置项,所以一旦传入此项,则超时、跳过证书等选项将失效】 另,此配置项具有继承性,所以在使用完以后请再次使用此项进行重置 defer https.SwitchClient(nil) 或者 defer https.ClientClose() 或若需要继续使用,则直接将其放在https.Regedit()注入配置附近

client	自定义的Client配置

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

func SwitchGetNoBody deprecated added in v0.2.8

func SwitchGetNoBody() []string

获取不显示Body的配置列表

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

func SwitchGetNoHeader deprecated added in v0.2.8

func SwitchGetNoHeader() []string

获取不显示Header的配置列表

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

func SwitchHttps deprecated added in v0.1.23

func SwitchHttps(bol bool)

切换Https参数验证规则

bol	是否跳过HTTPS证书效验 true跳过 false继续验证证书

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

func SwitchRemoveNoBody deprecated added in v0.2.8

func SwitchRemoveNoBody(h string)

移除不需要展示Body的URL网址

h	要显示的body的URL网址信息

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

func SwitchRemoveNoHeader deprecated added in v0.2.8

func SwitchRemoveNoHeader(h string)

移除不需要展示的Header头

h	要显示的header中的key标示

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

func SwitchTimeout deprecated added in v0.1.24

func SwitchTimeout(t time.Duration)

设置HTTP请求超时时间

t	设置超时时间,默认0,无超时设置

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,此处不再起作用,在v0.3.x版本中彻底移除

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 Get deprecated

func Get(uri string, param, header map[string]string) *CURL

GET请求

uri		请求地址
param	请求参数
header	请求头,自动追加accept、Content-Type等属性

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

func New added in v0.2.39

func New(url string, opts ...OptionFunc) *CURL

声明URL请求结构信息

url		要请求的网址信息
opts	可选参数,针对此网址进行的配置项追加

func Post deprecated

func Post(uri string, param, header map[string]string) *CURL

Post请求

uri		请求地址
param	请求参数
header	请求头,自动追加accept、Content-Type等属性

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

func PostJson deprecated

func PostJson(url string, param map[string]any, header map[string]string) *CURL

POST-JSON请求

url		请求地址
param	请求参数【如果不想封装外层map的话,可直接传入map[string]any{"_":xxx}(会在map最外层有且仅有_下标时才会直接取其内容进行传输)】
header	请求头,自动追加accept、Content-Type等属性

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

func (*CURL) Authorization added in v0.2.39

func (c *CURL) Authorization(token string) *CURL

追加Header请求头信息

token	JWT编码的Token加密信息

func (*CURL) Cookie added in v0.2.39

func (c *CURL) Cookie() []*http.Cookie

获取域名下的cookie信息 如果使用了jar进行cookie管理,会直接返回jar中该域名下的cookie 如果未使用jar进行管理,则会获取Cookie_quest的值,然后使用;=进行分割,以提取其中的key/value值 响应的,如果未使用jar进行管理,此处会手动循环cookie中的值进行strings切分,所以此处速度会稍慢一些

func (*CURL) Download added in v0.2.39

func (c *CURL) Download(file string) *CURL

下载文件,将请求的内容保存到本地

file	保存文件名

func (*CURL) DownloadIO added in v0.2.39

func (c *CURL) DownloadIO(f io.Writer) *CURL

下载文件到对外IO中进行重定向

f	写入对象的IO方法

func (*CURL) Get added in v0.2.39

func (c *CURL) Get() *CURL

使用GET请求 此处仅能使用 `Param` 进行设置请求参数

func (*CURL) Header

func (c *CURL) Header(h map[string]string) *CURL

设置Header请求头

h	header请求头的键值对信息

func (*CURL) HeaderKV added in v0.2.39

func (c *CURL) HeaderKV(k, v string) *CURL

设置Header请求头

k	header下标
v	header下标对应的值

func (*CURL) Json

func (curl *CURL) Json(obj any, first ...string) error

获取JSON中的数据

obj			要获取的obj对象,需要提供给json.Unmarshal
first...	simplejson.GetPath传入的string列表

func (*CURL) JsonData

func (curl *CURL) JsonData(obj any) error

获取JSON中的Data对象

obj	要转化的对象,需要在json中的data里面

func (*CURL) Param

func (c *CURL) Param(m map[string]string) *CURL

追加请求参数

m	待追加的参数信息

func (*CURL) ParamJson

func (c *CURL) ParamJson(m map[string]any) *CURL

JSON格式的请求参数追加

m	追加的参数列表(可直接传入map[string]any{"_":xxx}(会在map最外层有且仅有_下标时才会直接取其内容进行传输))

func (*CURL) ParamJsonAny added in v0.2.39

func (c *CURL) ParamJsonAny(m any) *CURL

JSON格式的请求参数追加

m	追加的参数列表(此处为简写map[string]any{"_":any}的写法)

func (*CURL) ParamKV added in v0.2.39

func (c *CURL) ParamKV(k, v string) *CURL

追加请求参数

k	请求参数的参数名
v	请求参数的参数值

func (*CURL) Post added in v0.2.39

func (c *CURL) Post() *CURL

使用POST请求 此处仅能使用 `Param` 进行设置请求参数

func (*CURL) PostJson added in v0.2.39

func (c *CURL) PostJson() *CURL

使用POST请求 此处使用 `ParamJson` 进行设置请求参数,支持使用 `Param` 设置的参数列表

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 Config deprecated added in v0.0.19

type Config struct {
	LogsFunc       func(c *CURL) // 日志记录函数【其param和param_json可能为截取后的结果,但返回值body为完整返回值】
	Https          bool          // 是否跳过HTTPS证书效验
	TimeOut        time.Duration // 请求超时时间
	MaxParamLength int           // 最大参数长度【超过该长度的字符串将会进行截取`MaxParamLength - 3 + "..."`】(直接传入PostJson(_:xxx)的方法无法进行截取)
	NoBodyRouter   []string      // 不记录Body返回值的网址请求,不支持正则表达式,支持开头匹配
	NoHeaderKeys   []string      // 不需要记录的Header信息[不区分大小写]
}

配置请求信息

Deprecated: 该函数在v0.2.31以后版本即将进行弃用,在v0.3.x版本中彻底移除

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 WithCookie added in v0.2.41

func WithCookie(jar *cookiejar.Jar) OptionFunc

使用不同的cookiejar包

jar	存储cookie的依赖结构[传入nil表示不存储cookie]

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请求头的下标标识

func WithNoLog added in v0.2.39

func WithNoLog(l bool) OptionFunc

设置此记录不记录日志标识

k	是否取消此条的日志记录

func WithTimeOut added in v0.2.39

func WithTimeOut(t time.Duration) OptionFunc

设置请求的超时时间

t	设置超时时间

type WGroup added in v0.2.55

type WGroup struct {
	Limit int // 最大并发携程限制,默认10000
	// contains filtered or unexported fields
}

分组请求结构 每个请求组只可运行一次

func Group added in v0.2.55

func Group(fun ...func()) *WGroup

HTTP请求组,将一组HTTP请求放置在一起,进行并发请求,直到最后一个请求完成再往下进行处理 该程序的耗时与传入的具体函数有关,一般情况下比传入的程序的最大耗时再大一些

fun	待处理的函数请求

func (*WGroup) Add added in v0.2.55

func (g *WGroup) Add(fun ...func()) *WGroup

添加异步待处理请求

fun	待处理的函数请求

func (*WGroup) Run added in v0.2.55

func (g *WGroup) Run() *WGroup

开始执行

func (*WGroup) SetLimit added in v0.2.55

func (g *WGroup) SetLimit(i int) *WGroup

设置最大执行队列条数

i	待设置的最大队列执行条数

func (*WGroup) SetTimeout added in v0.2.55

func (g *WGroup) SetTimeout(t time.Duration) *WGroup

设置最大超时时间

t	组内最大超时时间

func (*WGroup) Times added in v0.2.55

func (g *WGroup) Times() time.Duration

获取请求组运行时间

Jump to

Keyboard shortcuts

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