Documentation ¶
Index ¶
- Constants
- Variables
- func ClientIp(r *http.Request) string
- func DeCode(s string) string
- func GetCmdOutsideIP() string
- func GetInsideIp(ctx context.Context) string
- func GetMacAddr(ctx context.Context) (arrays []string)
- func GetOutsideIPV4All(ctx context.Context) string
- func GetOutsideIPV6All(ctx context.Context) string
- func GetOutsideIp(ctx context.Context) string
- func GetParamsString(src any) string
- func GetRandomUserAgent() string
- func GetRandomUserAgentSystem() string
- func GetRequestIDContext(ctx context.Context) string
- func IpIs(ipStr string) string
- func IpIsConsistent(ipStr1, ipStr2 string) bool
- func Ips(ctx context.Context) (map[string]string, error)
- func IsHttpURL(s string) bool
- func IsIPV4(s string) bool
- func IsIPV6(s string) bool
- func IsIPv4Public(ip net.IP) bool
- func IsIPv6Public(ip net.IP) bool
- func IsURL(s string) bool
- func IsWechatMiniProgramRequest(r *http.Request, appid string) error
- func LenCode(s string) string
- func ParseQuery(s string) map[string][]string
- func SetRequestIDContext(ctx context.Context) context.Context
- func ToXml(params map[string]any) (reader io.Reader, err error)
- type App
- func (c *App) Connect(ctx context.Context, uri ...string) (Response, error)
- func (c *App) Delete(ctx context.Context, uri ...string) (Response, error)
- func (c *App) Get(ctx context.Context, uri ...string) (Response, error)
- func (c *App) Head(ctx context.Context, uri ...string) (Response, error)
- func (c *App) Options(ctx context.Context, uri ...string) (Response, error)
- func (c *App) Patch(ctx context.Context, uri ...string) (Response, error)
- func (c *App) Post(ctx context.Context, uri ...string) (Response, error)
- func (c *App) Put(ctx context.Context, uri ...string) (Response, error)
- func (c *App) Request(ctx context.Context) (Response, error)
- func (c *App) SetAuthToken(token string)
- func (c *App) SetClientIP(clientIP string)
- func (c *App) SetContentTypeForm()
- func (c *App) SetContentTypeJson()
- func (c *App) SetContentTypeXml()
- func (c *App) SetCookie(cookie string)
- func (c *App) SetHeader(key, value string)
- func (c *App) SetHeaders(headers *Headers)
- func (c *App) SetLogFunc(logFunc LogFunc)
- func (c *App) SetMethod(method string)
- func (c *App) SetP12Cert(content *tls.Certificate)
- func (c *App) SetParam(key string, value any)
- func (c *App) SetParams(params *Params)
- func (c *App) SetTlsVersion(minVersion, maxVersion uint16)
- func (c *App) SetUri(uri string)
- func (c *App) SetUserAgent(ua string)
- func (c *App) Trace(ctx context.Context, uri ...string) (Response, error)
- type Headers
- type LogFunc
- type LogResponse
- type OldHeaders
- type OldParams
- type Params
- type Response
- func (r *Response) HeaderHtml() bool
- func (r *Response) HeaderIsImg() bool
- func (r *Response) HeaderIsJpeg() bool
- func (r *Response) HeaderIsJpg() bool
- func (r *Response) HeaderIsPng() bool
- func (r *Response) HeaderJson() bool
- func (r *Response) HeaderTextHtml() bool
- func (r *Response) HeaderXHtml() bool
- type ResponseUrlParse
- type UriParse
Constants ¶
View Source
const Version = "1.0.91"
Variables ¶
View Source
var ( XRequestID = "X-Request-ID" TNil = "%!s(<nil>)" )
View Source
var (
TraceID = "trace-Id"
)
Functions ¶
func ClientIp ¶
ClientIp 尽最大努力实现获取客户端 IP 的算法。 解析 X-Real-IP 和 X-Forwarded-For 以便于反向代理(nginx 或 haproxy)可以正常工作。
func GetOutsideIPV4All ¶
GetOutsideIPV4All 外网IPV4地址
func GetOutsideIPV6All ¶
GetOutsideIPV6All 外网IPV6地址
func GetRandomUserAgentSystem ¶
func GetRandomUserAgentSystem() string
GetRandomUserAgentSystem 获取系统随机UA
func GetRequestIDContext ¶
GetRequestIDContext 获取请求编号
func IsIPv4Public ¶
func IsIPv6Public ¶
func IsWechatMiniProgramRequest ¶
IsWechatMiniProgramRequest 判断是否是微信小程序
func ParseQuery ¶
ParseQuery 获取URL参数 https://studygolang.com/articles/2876
func SetRequestIDContext ¶
SetRequestIDContext 设置请求编号
Types ¶
type App ¶
type App struct { Uri string // 全局请求地址,没有设置url才会使用 // contains filtered or unexported fields }
App 实例
func (*App) SetTlsVersion ¶
SetTlsVersion 设置TLS版本
type Headers ¶
Headers 头部信息
func NewNewHeadersWith ¶
NewNewHeadersWith 头部信息使用
type LogResponse ¶
type LogResponse struct { TraceID string `json:"trace_id"` // 追踪编号 RequestID string `json:"request_id"` // 请求编号 RequestTime time.Time `json:"request_time"` // 请求时间 RequestHost string `json:"request_host"` // 请求主机 RequestPath string `json:"request_path"` // 请求地址 RequestQuery map[string][]string `json:"request_query"` // 请求参数 RequestMethod string `json:"request_method"` // 请求方式 RequestBody map[string]any `json:"request_body"` // 请求内容 RequestIP string `json:"request_ip"` // 请求IP RequestHeader map[string][]string `json:"request_header"` // 请求头 RequestCostTime int64 `json:"request_cost_time"` // 请求消耗时长 ResponseTime time.Time `json:"response_time"` // 返回时间 ResponseHeader map[string][]string `json:"response_header"` // 返回头部 ResponseCode int `json:"response_code"` // 返回状态码 ResponseBody string `json:"response_body"` // 返回Json数据 ResponseBodyJson map[string]any `json:"response_body_json"` // 返回Json数据 ResponseBodyXml string `json:"response_body_xml"` // 返回Xml数据 }
type OldHeaders ¶ added in v1.0.88
OldHeaders 头部信息
func NewNewOldHeadersWith ¶ added in v1.0.88
func NewNewOldHeadersWith(oldHeaders ...OldHeaders) OldHeaders
NewNewOldHeadersWith 头部信息使用
func (*OldHeaders) DeepCopy ¶ added in v1.0.88
func (h *OldHeaders) DeepCopy() map[string]string
DeepCopy 深度复制
func (OldHeaders) SetHeaders ¶ added in v1.0.88
func (h OldHeaders) SetHeaders(OldHeaders OldHeaders)
SetHeaders 批量设置头部信息
type OldParams ¶ added in v1.0.88
OldParams 参数
func NewOldParamsWith ¶ added in v1.0.88
NewOldParamsWith 参数使用
type Response ¶
type Response struct { RequestID string `json:"request_id"` // 请求编号 RequestUri string `json:"request_uri"` // 请求链接 RequestParams *Params `json:"request_params"` // 请求参数 RequestMethod string `json:"request_method"` // 请求方式 RequestHeader *Headers `json:"request_header"` // 请求头部 RequestCookie string `json:"request_cookie"` // 请求Cookie RequestTime time.Time `json:"request_time"` // 请求时间 RequestCostTime int64 `json:"request_cost_time"` // 请求消耗时长 ResponseHeader http.Header `json:"response_header"` // 响应头部 ResponseStatus string `json:"response_status"` // 响应状态 ResponseStatusCode int `json:"response_status_code"` // 响应状态码 ResponseBody []byte `json:"response_body"` // 响应内容 ResponseContentLength int64 `json:"response_content_length"` // 响应大小 ResponseTime time.Time `json:"response_time"` // 响应时间 }
Response 返回内容
type ResponseUrlParse ¶
type ResponseUrlParse struct { Uri string `json:"uri"` // URI Urn string `json:"urn"` // URN Url string `json:"url"` // URL Scheme string `json:"scheme"` // 协议 Host string `json:"host"` // 主机 Hostname string `json:"hostname"` // 主机名 Port string `json:"port"` // 端口 Path string `json:"path"` // 路径 RawQuery string `json:"raw_query"` // 参数 ? Fragment string `json:"fragment"` // 片段 # }
ResponseUrlParse 返回参数
type UriParse ¶
type UriParse struct {
// contains filtered or unexported fields
}
func (*UriParse) UriFilterExcludeQueryString ¶
UriFilterExcludeQueryString 过滤掉url中的参数
Source Files ¶
Click to show internal directories.
Click to hide internal directories.