gorequest

package module
v1.0.72 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2024 License: MIT Imports: 31 Imported by: 46

README

Golang

📦 Golang 请求

godoc goproxy.cn goreportcard.com deps.dev

安装

go get -v -u go.dtapp.net/gorequest@v1.0.72

Documentation

Index

Constants

View Source
const Version = "1.0.72"

Variables

View Source
var (
	TraceID = "trace-Id"
)

Functions

func ClientIp

func ClientIp(r *http.Request) string

ClientIp 尽最大努力实现获取客户端 IP 的算法。 解析 X-Real-IP 和 X-Forwarded-For 以便于反向代理(nginx 或 haproxy)可以正常工作。

func DeCode added in v1.0.19

func DeCode(s string) string

DeCode 解码

func GetCmdOutsideIP added in v1.0.50

func GetCmdOutsideIP() string

GetCmdOutsideIP 通过命令获取外网IP

func GetInsideIp added in v1.0.40

func GetInsideIp(ctx context.Context) string

GetInsideIp 内网IP

func GetMacAddr added in v1.0.40

func GetMacAddr(ctx context.Context) (arrays []string)

GetMacAddr 获取Mac地址

func GetOutsideIPV4All added in v1.0.50

func GetOutsideIPV4All(ctx context.Context) string

GetOutsideIPV4All 外网IPV4地址

func GetOutsideIPV6All added in v1.0.50

func GetOutsideIPV6All(ctx context.Context) string

GetOutsideIPV6All 外网IPV6地址

func GetOutsideIp added in v1.0.40

func GetOutsideIp(ctx context.Context) string

GetOutsideIp 外网IP

func GetParamsString

func GetParamsString(src interface{}) string

GetParamsString 获取参数字符串

func GetRandomUserAgent

func GetRandomUserAgent() string

GetRandomUserAgent 获取随机UA

func GetRandomUserAgentSystem

func GetRandomUserAgentSystem() string

GetRandomUserAgentSystem 获取系统随机UA

func GetRequestIDContext added in v1.0.59

func GetRequestIDContext(ctx context.Context) string

GetRequestIDContext 获取请求编号

func IpIs added in v1.0.67

func IpIs(ipStr string) string

IpIs 是否ip

func IpIsConsistent added in v1.0.67

func IpIsConsistent(ipStr1, ipStr2 string) bool

IpIsConsistent 两个ip是否一致

func Ips added in v1.0.40

func Ips(ctx context.Context) (map[string]string, error)

Ips 获取全部网卡的全部IP

func IsIPV4 added in v1.0.50

func IsIPV4(s string) bool

func IsIPV6 added in v1.0.50

func IsIPV6(s string) bool

func IsIPv4Public added in v1.0.50

func IsIPv4Public(ip net.IP) bool

func IsIPv6Public added in v1.0.50

func IsIPv6Public(ip net.IP) bool

func IsWechatMiniProgramRequest added in v1.0.39

func IsWechatMiniProgramRequest(r *http.Request, appid string) error

IsWechatMiniProgramRequest 判断是否是微信小程序

func LenCode added in v1.0.19

func LenCode(s string) string

LenCode 编码

func ParseQuery added in v1.0.19

func ParseQuery(s string) map[string][]string

ParseQuery 获取URL参数 https://studygolang.com/articles/2876

func SetRequestIDContext added in v1.0.65

func SetRequestIDContext(ctx context.Context) context.Context

SetRequestIDContext 设置请求编号

func ToXml added in v1.0.39

func ToXml(params map[string]interface{}) (reader io.Reader, err error)

func TraceEndSpan added in v1.0.67

func TraceEndSpan(span trace.Span)

TraceEndSpan 结束OpenTelemetry链路追踪状态

func TraceGetSpanID added in v1.0.67

func TraceGetSpanID(ctx context.Context) (spanID string)

TraceGetSpanID 获取OpenTelemetry链路追踪SpanID

func TraceGetTraceID added in v1.0.67

func TraceGetTraceID(ctx context.Context) (traceID string)

TraceGetTraceID 获取OpenTelemetry链路追踪TraceID

func TraceNewSpan added in v1.0.67

func TraceNewSpan(ctx context.Context, name string, spanName string, spanValue string, version string, kind trace.SpanKind) (context.Context, trace.Span)

TraceNewSpan 创建OpenTelemetry链路追踪状态

func TraceRecordError added in v1.0.67

func TraceRecordError(ctx context.Context, err error, options ...trace.EventOption)

TraceRecordError 记录OpenTelemetry链路追踪错误

func TraceSetAttributes added in v1.0.67

func TraceSetAttributes(ctx context.Context, kv ...attribute.KeyValue)

TraceSetAttributes 设置OpenTelemetry链路追踪属性

func TraceSetStatus added in v1.0.67

func TraceSetStatus(ctx context.Context, code codes.Code, description string)

TraceSetStatus 设置OpenTelemetry链路追踪状态

func TraceSpanGetSpanID added in v1.0.70

func TraceSpanGetSpanID(span trace.Span) (spanID string)

TraceSpanGetSpanID 获取OpenTelemetry链路追踪SpanID

func TraceSpanGetTraceID added in v1.0.70

func TraceSpanGetTraceID(span trace.Span) (traceID string)

TraceSpanGetTraceID 获取OpenTelemetry链路追踪TraceID

func TraceSpanRecordError added in v1.0.70

func TraceSpanRecordError(span trace.Span, err error, options ...trace.EventOption)

TraceSpanRecordError 记录OpenTelemetry链路追踪错误

func TraceSpanSetAttributes added in v1.0.70

func TraceSpanSetAttributes(span trace.Span, kv ...attribute.KeyValue)

TraceSpanSetAttributes 设置OpenTelemetry链路追踪属性

func TraceSpanSetStatus added in v1.0.70

func TraceSpanSetStatus(span trace.Span, code codes.Code, description string)

TraceSpanSetStatus 设置OpenTelemetry链路追踪状态

func TraceStartSpan added in v1.0.67

func TraceStartSpan(ctx context.Context, spanName string) (context.Context, trace.Span)

TraceStartSpan 开始OpenTelemetry链路追踪状态

Types

type App

type App struct {
	Uri string // 全局请求地址,没有设置url才会使用
	// contains filtered or unexported fields
}

App 实例

func NewHttp

func NewHttp() *App

NewHttp 实例化

func (*App) Connect added in v1.0.53

func (c *App) Connect(ctx context.Context, uri ...string) (httpResponse Response, err error)

Connect 发起 CONNECT 请求

func (*App) Delete added in v1.0.52

func (c *App) Delete(ctx context.Context, uri ...string) (httpResponse Response, err error)

Delete 发起 DELETE 请求

func (*App) Get

func (c *App) Get(ctx context.Context, uri ...string) (httpResponse Response, err error)

Get 发起 GET 请求

func (*App) Head added in v1.0.53

func (c *App) Head(ctx context.Context, uri ...string) (httpResponse Response, err error)

Head 发起 HEAD 请求

func (*App) Options added in v1.0.53

func (c *App) Options(ctx context.Context, uri ...string) (httpResponse Response, err error)

Options 发起 OPTIONS 请求

func (*App) Patch added in v1.0.53

func (c *App) Patch(ctx context.Context, uri ...string) (httpResponse Response, err error)

Patch 发起 PATCH 请求

func (*App) Post

func (c *App) Post(ctx context.Context, uri ...string) (httpResponse Response, err error)

Post 发起 POST 请求

func (*App) Put added in v1.0.52

func (c *App) Put(ctx context.Context, uri ...string) (httpResponse Response, err error)

Put 发起 PUT 请求

func (*App) Request

func (c *App) Request(ctx context.Context) (httpResponse Response, err error)

Request 发起请求

func (*App) SetAuthToken

func (c *App) SetAuthToken(token string)

SetAuthToken 设置身份验证令牌

func (*App) SetClientIP added in v1.0.55

func (c *App) SetClientIP(clientIP string)

SetClientIP 设置客户端IP

func (*App) SetContentTypeForm

func (c *App) SetContentTypeForm()

SetContentTypeForm 设置FORM格式

func (*App) SetContentTypeJson

func (c *App) SetContentTypeJson()

SetContentTypeJson 设置JSON格式

func (*App) SetContentTypeXml

func (c *App) SetContentTypeXml()

SetContentTypeXml 设置XML格式

func (*App) SetCookie added in v1.0.39

func (c *App) SetCookie(cookie string)

SetCookie 设置Cookie

func (*App) SetHeader

func (c *App) SetHeader(key, value string)

SetHeader 设置请求头

func (*App) SetHeaders

func (c *App) SetHeaders(headers Headers)

SetHeaders 批量设置请求头

func (*App) SetLogFunc added in v1.0.56

func (c *App) SetLogFunc(logFunc LogFunc)

SetLogFunc 设置日志记录方法

func (*App) SetMethod

func (c *App) SetMethod(method string)

SetMethod 设置请求方式

func (*App) SetP12Cert

func (c *App) SetP12Cert(content *tls.Certificate)

SetP12Cert 设置证书

func (*App) SetParam

func (c *App) SetParam(key string, value interface{})

SetParam 设置请求参数

func (*App) SetParams

func (c *App) SetParams(params Params)

SetParams 批量设置请求参数

func (*App) SetTlsVersion added in v1.0.39

func (c *App) SetTlsVersion(minVersion, maxVersion uint16)

SetTlsVersion 设置TLS版本

func (*App) SetTrace added in v1.0.62

func (c *App) SetTrace(trace bool)

SetTrace 设置OpenTelemetry链路追踪 TODO: 等待完全删除

func (*App) SetUri

func (c *App) SetUri(uri string)

SetUri 设置请求地址

func (*App) SetUserAgent

func (c *App) SetUserAgent(ua string)

SetUserAgent 设置用户代理,传空字符串就随机设置

func (*App) Trace added in v1.0.53

func (c *App) Trace(ctx context.Context, uri ...string) (httpResponse Response, err error)

Trace 发起 TRACE 请求

type Headers

type Headers map[string]string

Headers 头部信息

func NewHeaders

func NewHeaders() Headers

NewHeaders 新建头部信息

func NewNewHeadersWith

func NewNewHeadersWith(headers ...Headers) Headers

NewNewHeadersWith 头部信息使用

func (*Headers) DeepCopy

func (h *Headers) DeepCopy() map[string]string

DeepCopy 深度复制

func (Headers) GetQuery

func (h Headers) GetQuery() string

GetQuery 获取头部信息

func (Headers) Set

func (h Headers) Set(key, value string)

Set 设置头部信息

func (Headers) SetHeaders

func (h Headers) SetHeaders(headers Headers)

SetHeaders 批量设置头部信息

type LogFunc added in v1.0.55

type LogFunc func(ctx context.Context, response *LogResponse)

LogFunc 日志函数

type LogResponse added in v1.0.55

type LogResponse struct {
	TraceID            string    `json:"trace_id"`             // 追踪编号
	RequestID          string    `json:"request_id"`           // 请求编号
	RequestTime        time.Time `json:"request_time"`         // 请求时间
	RequestUri         string    `json:"request_uri"`          // 请求链接
	RequestUrl         string    `json:"request_url"`          // 请求链接
	RequestApi         string    `json:"request_api"`          // 请求接口
	RequestMethod      string    `json:"request_method"`       // 请求方式
	RequestParams      string    `json:"request_params"`       // 请求参数
	RequestHeader      string    `json:"request_header"`       // 请求头部
	RequestIP          string    `json:"request_ip"`           // 请求请求IP
	RequestCostTime    int64     `json:"request_cost_time"`    // 请求消耗时长
	ResponseHeader     string    `json:"response_header"`      // 返回头部
	ResponseStatusCode int       `json:"response_status_code"` // 返回状态码
	ResponseBody       string    `json:"response_body"`        // 返回Json数据
	ResponseBodyJson   string    `json:"response_body_json"`   // 返回Json数据
	ResponseBodyXml    string    `json:"response_body_xml"`    // 返回Xml数据
	ResponseTime       time.Time `json:"response_time"`        // 返回时间
	GoVersion          string    `json:"go_version"`           // 程序GoVersion
	SdkVersion         string    `json:"sdk_version"`          // 程序SdkVersion
}

type Params

type Params map[string]interface{}

Params 参数

func NewParams

func NewParams() Params

NewParams 新建参数

func NewParamsWith

func NewParamsWith(params ...Params) Params

NewParamsWith 参数使用

func (*Params) DeepCopy

func (p *Params) DeepCopy() map[string]interface{}

DeepCopy 深度复制

func (Params) Get added in v1.0.39

func (p Params) Get(key string) interface{}

Get 获取参数

func (Params) Set

func (p Params) Set(key string, value interface{})

Set 设置参数

func (Params) SetParams

func (p Params) SetParams(params Params)

SetParams 批量设置参数

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 返回内容

func (*Response) HeaderHtml added in v1.0.28

func (r *Response) HeaderHtml() bool

HeaderHtml 判断是否为Html

func (*Response) HeaderIsImg added in v1.0.28

func (r *Response) HeaderIsImg() bool

HeaderIsImg 判断是否为图片

func (*Response) HeaderIsJpeg added in v1.0.28

func (r *Response) HeaderIsJpeg() bool

HeaderIsJpeg 判断是否为jpeg图片

func (*Response) HeaderIsJpg added in v1.0.28

func (r *Response) HeaderIsJpg() bool

HeaderIsJpg 判断是否为Jpg图片

func (*Response) HeaderIsPng added in v1.0.28

func (r *Response) HeaderIsPng() bool

HeaderIsPng 判断是否为Png图片

func (*Response) HeaderJson added in v1.0.28

func (r *Response) HeaderJson() bool

HeaderJson 判断是否为Json数据

func (*Response) HeaderTextHtml added in v1.0.28

func (r *Response) HeaderTextHtml() bool

HeaderTextHtml 判断是否为Html

func (*Response) HeaderXHtml added in v1.0.28

func (r *Response) HeaderXHtml() bool

HeaderXHtml 判断是否为Html

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 NewUri added in v1.0.29

func NewUri(uri string) *UriParse

func (*UriParse) Parse added in v1.0.29

func (u *UriParse) Parse() (resp ResponseUrlParse)

Parse 解析URl

func (*UriParse) UriFilterExcludeQueryString added in v1.0.29

func (u *UriParse) UriFilterExcludeQueryString(uri string) string

UriFilterExcludeQueryString 过滤掉url中的参数

Jump to

Keyboard shortcuts

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