网页类

package
v0.0.0-...-2910145 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2024 License: MIT Imports: 47 Imported by: 0

Documentation

Overview

包gclient提供了便捷的HTTP客户端功能。

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func X创建TLS配置

func X创建TLS配置(crt路径, key路径 string) (*tls.Config, error)

LoadKeyCrt 通过给定的证书和密钥文件创建并返回一个 TLS 配置对象。

Types

type Client

type Client struct {
	http.Client // 底层HTTP客户端
	// contains filtered or unexported fields
}

Client 是用于管理 HTTP 请求的 HTTP 客户端。

func X创建

func X创建() *Client

New 创建并返回一个新的HTTP客户端对象。

func (*Client) Connect响应对象

func (c *Client) Connect响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Connect 发送 CONNECT 请求并返回响应对象。 注意:如果响应对象将永不被使用,则必须关闭它。

func (*Client) Connect字节集

func (c *Client) Connect字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

ConnectBytes 发送一个 CONNECT 请求,获取并以字节形式返回结果内容。

func (*Client) Connect文本

func (c *Client) Connect文本(上下文 context.Context, url string, 参数 ...interface{}) string

ConnectContent 是一个便捷方法,用于发送 CONNECT 请求,它会检索并返回结果内容,并自动关闭响应对象。

func (*Client) Connect泛型类

func (c *Client) Connect泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

ConnectVar 发送一个 CONNECT 请求,获取并转换结果内容到指定的指针。 参数 `pointer` 的类型可以是:struct/*struct/**struct/[]struct/[]*struct/*[]struct 等。

func (*Client) Cookie

func (c *Client) Cookie(MapCookie map[string]string) *Client

Cookie 是一个链式函数, 用于为下一次请求通过映射设置cookie项。

Example
var (
	url    = "http://127.0.0.1:8999/cookie"
	cookie = g.MapStrStr{
		"SessionId": "123",
	}
)
content := g.X网页类().Cookie(cookie).Post文本(ctx, url, g.Map{
	"id":   10000,
	"name": "john",
})
fmt.Println(content)
Output:

SessionId: 123

func (*Client) Delete响应对象

func (c *Client) Delete响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Delete 发送DELETE请求并返回响应对象。 注意:如果响应对象将永远不会被使用,那么它必须被关闭。

func (*Client) Delete字节集

func (c *Client) Delete字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

DeleteBytes 发送一个 DELETE 请求,获取并以字节形式返回结果内容。

func (*Client) Delete文本

func (c *Client) Delete文本(上下文 context.Context, url string, 参数 ...interface{}) string

DeleteContent 是一个便捷方法,用于发送 DELETE 请求,该方法会获取并返回结果内容,并自动关闭响应对象。

func (*Client) Delete泛型类

func (c *Client) Delete泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

DeleteVar 发送一个 DELETE 请求,获取并转换结果内容为指定的指针类型。 参数 `pointer` 可以是以下类型:struct/*struct/**struct/[]struct/[]*struct/*[]struct 等等。

func (*Client) Discovery

func (c *Client) Discovery(discovery gsvc.Discovery) *Client

Discovery 是一个链式函数,用于为客户端设置发现机制。 你可以使用 `Discovery(nil)` 来禁用当前客户端的发现功能。

func (*Client) DoRequestObj

func (c *Client) DoRequestObj(ctx context.Context, req, res interface{}) error

DoRequestObj 使用标准请求/响应对象执行HTTP请求。 请求对象`req`的定义类似如下:

type UseCreateReq struct {
    g.Meta `path:"/user" method:"put"`

// 其他字段...

}

响应对象`res`应该是指针类型。如果成功,它会自动将结果转换为给定的对象`res`。 例如:

var (

	req = UseCreateReq{}
	res *UseCreateRes

)

DoRequestObj(ctx, req, &res) 这段代码注释翻译成中文的大致意思是:该函数DoRequestObj利用标准的请求/响应对象进行HTTP请求操作。其中,请求对象`req`是一个结构体,其定义中包含了用于指定HTTP路径和方法的元数据字段。响应对象`res`应当是指针类型,当HTTP请求成功时,函数会自动将响应结果转换并填充到这个`res`对象中。示例代码展示了如何初始化请求与响应对象,并调用DoRequestObj函数执行请求。

func (*Client) Get响应对象

func (c *Client) Get响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Get 发送GET请求并返回响应对象。 注意:如果响应对象将永远不会被使用,那么它必须被关闭。

func (*Client) Get字节集

func (c *Client) Get字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

GetBytes 发送一个GET请求,获取并以字节形式返回结果内容。

func (*Client) Get文本

func (c *Client) Get文本(上下文 context.Context, url string, 参数 ...interface{}) string

GetContent 是一个便捷方法,用于发送 GET 请求,它获取并返回结果内容,并自动关闭响应对象。

func (*Client) Get泛型类

func (c *Client) Get泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

GetVar 发送一个GET请求,获取并转换结果内容为指定的指针类型。 参数`pointer`可以是以下类型:struct/*struct/**struct/[]struct/[]*struct/*[]struct等。

func (*Client) Head响应对象

func (c *Client) Head响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Head 发送HEAD请求并返回响应对象。 注意,如果响应对象将永远不会被使用,则必须关闭它。

func (*Client) Head字节集

func (c *Client) Head字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

HeadBytes 发送一个 HEAD 请求,获取并以字节形式返回结果内容。

func (*Client) Head文本

func (c *Client) Head文本(上下文 context.Context, url string, 参数 ...interface{}) string

HeadContent 是一个便捷方法,用于发送 HEAD 请求。该方法会检索并返回结果内容,并自动关闭响应对象。

func (*Client) Head泛型类

func (c *Client) Head泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

HeadVar 发送一个 HEAD 请求,获取并转换结果内容到指定的指针。 参数 `pointer` 可以是以下类型:struct/*struct/**struct/[]struct/[]*struct/*[]struct 等等。

func (*Client) Next

func (c *Client) Next(req *http.Request) (*Response, error)

Next 调用下一个中间件。 该函数仅应在 HandlerFunc 中调用。

func (*Client) Options响应对象

func (c *Client) Options响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Options 发送 OPTIONS 请求并返回响应对象。 注意,如果响应对象将永远不会被使用,则必须关闭它。

func (*Client) Options字节集

func (c *Client) Options字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

OptionsBytes 发送一个 OPTIONS 请求,获取并以字节形式返回结果内容。

func (*Client) Options文本

func (c *Client) Options文本(上下文 context.Context, url string, 参数 ...interface{}) string

OptionsContent 是一个便捷方法,用于发送 OPTIONS 请求,该方法会获取并返回结果内容,并自动关闭响应对象。

func (*Client) Options泛型类

func (c *Client) Options泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

OptionsVar 发送一个 OPTIONS 请求,获取并转换结果内容到指定的指针。 参数 `pointer` 的类型可以是:struct/*struct/[]struct/[]*struct/*[]struct 等。

func (*Client) Patch响应对象

func (c *Client) Patch响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Patch 发送 PATCH 请求并返回响应对象。 注意:如果响应对象将永不被使用,那么它必须被关闭。

func (*Client) Patch字节集

func (c *Client) Patch字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

PatchBytes 发送一个 PATCH 请求,获取并以字节形式返回结果内容。

func (*Client) Patch文本

func (c *Client) Patch文本(上下文 context.Context, url string, 参数 ...interface{}) string

PatchContent 是一个便捷方法,用于发送 PATCH 请求。它会获取并返回结果内容,并自动关闭响应对象。

func (*Client) Patch泛型类

func (c *Client) Patch泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

PatchVar 发送一个 PATCH 请求,获取并转换结果内容为指定的指针类型。 参数 `pointer` 的类型可以是:struct/*struct/**struct/[]struct/[]*struct/*[]struct 等。

func (*Client) Post响应对象

func (c *Client) Post响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Post 使用HTTP方法POST发送请求,并返回响应对象。 注意,如果响应对象将永远不会被使用,则必须关闭它。

func (*Client) Post字节集

func (c *Client) Post字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

PostBytes 发送一个POST请求,获取并以字节形式返回结果内容。

func (*Client) Post文本

func (c *Client) Post文本(上下文 context.Context, url string, 参数 ...interface{}) string

PostContent 是一个便捷方法,用于发送 POST 请求,它会检索并返回结果内容,并自动关闭响应对象。

func (*Client) Post泛型类

func (c *Client) Post泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

PostVar 发送一个POST请求,获取并转换结果内容为指定的指针类型。 参数`pointer`可以是以下类型:struct/*struct/**struct/[]struct/[]*struct/*[]struct等。

func (*Client) Post表单响应对象

func (c *Client) Post表单响应对象(上下文 context.Context, url string, Map参数 map[string]string) (响应 *Response, 错误 error)

PostForm 与 net/http.PostForm 不同。 它是 Post 方法的一个包装器,会将 Content-Type 设置为 "multipart/form-data;"。 并且它会自动为请求体和 Content-Type 设置边界字符。

其效果类似于以下情况:

Content-Type: multipart/form-data; boundary=----Boundarye4Ghaog6giyQ9ncN

表单数据格式如下: ------Boundarye4Ghaog6giyQ9ncN Content-Disposition: form-data; name="checkType"

none

该方法用于发送表单数据。 注意,如果响应对象不再使用,则必须关闭它。

func (*Client) Put响应对象

func (c *Client) Put响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Put 发送PUT请求并返回响应对象。 注意:如果响应对象将永不被使用,则必须关闭它。

func (*Client) Put字节集

func (c *Client) Put字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

PutBytes 发送一个 PUT 请求,获取并以字节形式返回结果内容。

func (*Client) Put文本

func (c *Client) Put文本(上下文 context.Context, url string, 参数 ...interface{}) string

PutContent 是一个便捷的方法,用于发送 PUT 请求,它会获取并返回结果内容,并自动关闭响应对象。

func (*Client) Put泛型类

func (c *Client) Put泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

PutVar 发送一个 PUT 请求,获取并转换结果内容为指定的指针类型。 参数 `pointer` 可以是以下类型:struct、*struct、**struct、[]struct、[]*struct、*[]struct 等等。

func (*Client) SetBuilder

func (c *Client) SetBuilder(builder gsel.Builder)

SetBuilder 为客户端设置负载均衡器生成器。

func (*Client) SetDiscovery

func (c *Client) SetDiscovery(discovery gsvc.Discovery)

SetDiscovery 设置客户端的负载均衡器生成器。

func (*Client) Trace响应对象

func (c *Client) Trace响应对象(上下文 context.Context, url string, 参数 ...interface{}) (*Response, error)

Trace 发送 TRACE 请求并返回响应对象。 注意:如果响应对象将永远不会被使用,则必须关闭它。

func (*Client) Trace字节集

func (c *Client) Trace字节集(上下文 context.Context, url string, 参数 ...interface{}) []byte

TraceBytes 发送一个 TRACE 请求,获取并以字节形式返回结果内容。

func (*Client) Trace文本

func (c *Client) Trace文本(上下文 context.Context, url string, 参数 ...interface{}) string

TraceContent 是一个便捷方法,用于发送 TRACE 请求,该请求会检索并返回结果内容,并自动关闭响应对象。

func (*Client) Trace泛型类

func (c *Client) Trace泛型类(上下文 context.Context, url string, 参数 ...interface{}) *泛型类.Var

TraceVar 发送一个 TRACE 请求,获取并转换结果内容到指定的指针。 参数 `pointer` 可以是以下类型:struct/*struct/**struct/[]struct/[]*struct/*[]struct 等等。

func (*Client) Url前缀

func (c *Client) Url前缀(前缀 string) *Client

Prefix 是一个链式函数, 它用于设置该客户端下一次请求的URL前缀。 示例: Prefix("http://127.0.0.1:8199/api/v1") // 设置URL前缀为v1版本 Prefix("http://127.0.0.1:8199/api/v2") // 设置URL前缀为v2版本

func (*Client) X中间件

func (c *Client) X中间件(中间件s ...X中间件函数) *Client

Use 向客户端添加一个或多个中间件处理器。

func (*Client) X代理

func (c *Client) X代理(代理地址 string) *Client

Proxy 是一个链式函数, 用于设置下一次请求的代理。 请确保传递正确的 `proxyURL`。 正确的格式应为 `http://USER:PASSWORD@IP:PORT` 或 `socks5://USER:PASSWORD@IP:PORT`。 目前仅支持 `http` 和 `socks5` 类型的代理。

func (*Client) X内容类型

func (c *Client) X内容类型(contentType string) *Client

ContentType 是一个链式函数, 用于为下一个请求设置HTTP内容类型。

func (*Client) X内容类型json

func (c *Client) X内容类型json() *Client

ContentJson 是一个链式函数, 它用于为下一个请求设置HTTP内容类型为 "application/json"。

注意,它还会自动检查并以JSON格式对参数进行编码。

func (*Client) X内容类型xml

func (c *Client) X内容类型xml() *Client

ContentXml 是一个链式函数, 它为下一次请求设置HTTP内容类型为"application/xml"。

注意,它还会自动检查并以XML格式对参数进行编码。

func (*Client) X协议头

func (c *Client) X协议头(map协议头 map[string]string) *Client

Header 是一个链式函数, 用于为下一个请求设置自定义HTTP头部,参数为映射(map)类型。

func (*Client) X原始协议头

func (c *Client) X原始协议头(原始协议头 string) *Client

HeaderRaw 是一个链式函数, 它用于设置下一次请求的自定义HTTP头部,使用原始字符串形式。

func (*Client) X取副本

func (c *Client) X取副本() *Client

Clone 深度克隆当前客户端并返回一个新的客户端。

func (*Client) X启用浏览器模式

func (c *Client) X启用浏览器模式(启用 bool) *Client

SetBrowserMode启用客户端的浏览器模式。 当浏览器模式被启用后,它会自动保存并从服务器发送、接收cookie内容。

func (*Client) X设置CookieMap

func (c *Client) X设置CookieMap(MapCookie map[string]string) *Client

SetCookieMap 通过map设置cookie项目。

func (*Client) X设置Map协议头

func (c *Client) X设置Map协议头(map协议头 map[string]string) *Client

SetHeaderMap 通过映射设置自定义HTTP头。

func (*Client) X设置TLS配置

func (c *Client) X设置TLS配置(TLS配置 *tls.Config) error

SetTLSConfig 设置客户端的 TLS 配置。

func (*Client) X设置UA

func (c *Client) X设置UA(UA值 string) *Client

SetAgent 设置客户端的 User-Agent 头部信息。

func (*Client) X设置cookie

func (c *Client) X设置cookie(名称, 值 string) *Client

SetCookie 为客户端设置一个cookie对。

func (*Client) X设置url前缀

func (c *Client) X设置url前缀(前缀 string) *Client

SetPrefix 设置请求服务器 URL 前缀。

func (*Client) X设置代理

func (c *Client) X设置代理(代理地址 string)

SetProxy 为客户端设置代理。 当参数`proxyURL`为空或者格式不正确时,此函数将不做任何操作。 正确的格式应如 `http://USER:PASSWORD@IP:PORT` 或 `socks5://USER:PASSWORD@IP:PORT`。 目前仅支持 `http` 和 `socks5` 类型的代理。

func (*Client) X设置内容类型

func (c *Client) X设置内容类型(内容类型 string) *Client

SetContentType 为客户端设置HTTP内容类型。

func (*Client) X设置协议头

func (c *Client) X设置协议头(名称, 值 string) *Client

SetHeader 为客户端设置自定义HTTP头键值对。

func (*Client) X设置原始协议头

func (c *Client) X设置原始协议头(原始协议头 string) *Client

SetHeaderRaw 通过原始字符串设置自定义HTTP头。

func (*Client) X设置证书

func (c *Client) X设置证书(crt路径, key路径 string) error

SetTLSKeyCrt 用于设置客户端TLS配置所需的证书和密钥文件。

func (*Client) X设置请求参数禁止URL编码

func (c *Client) X设置请求参数禁止URL编码(禁止编码 bool) *Client

SetNoUrlEncode 设置标记,表示在发送请求前不对参数进行URL编码。

func (*Client) X设置账号密码

func (c *Client) X设置账号密码(账号, 密码 string) *Client

SetBasicAuth为客户端设置HTTP基础认证信息。

func (*Client) X设置超时

func (c *Client) X设置超时(时长 time.Duration) *Client

SetTimeout 设置客户端的请求超时时间。

func (*Client) X设置重定向次数限制

func (c *Client) X设置重定向次数限制(次数 int) *Client

SetRedirectLimit 限制跳转次数。

func (*Client) X设置重试与间隔

func (c *Client) X设置重试与间隔(重试计数 int, 重试间隔时长 time.Duration) *Client

SetRetry 设置重试次数和间隔。

func (*Client) X请求参数禁止URL编码

func (c *Client) X请求参数禁止URL编码() *Client

NoUrlEncode 设置标记,表示在发送请求前不应对参数进行URL编码。

func (*Client) X请求响应对象

func (c *Client) X请求响应对象(上下文 context.Context, method, url string, 参数 ...interface{}) (响应 *Response, 错误 error)

DoRequest 使用给定的HTTP方法和数据发送请求,并返回响应对象。 注意,如果响应对象将不再使用,则必须关闭它。

注意,如果请求包含文件上传,则它使用"multipart/form-data"作为其Content-Type, 否则使用"application/x-www-form-urlencoded"。它还会自动检测POST内容的JSON格式, 对于JSON格式的内容,会自动将其Content-Type设置为"application/json"。

func (*Client) X请求字节集

func (c *Client) X请求字节集(上下文 context.Context, 方法 string, url string, 参数 ...interface{}) []byte

RequestBytes 使用给定的HTTP方法和数据发送请求,然后以字节形式返回结果。 它会自动内部读取并关闭响应对象。

func (*Client) X请求文本

func (c *Client) X请求文本(上下文 context.Context, 方法 string, url string, 参数 ...interface{}) string

RequestContent 是一个便捷方法,用于发送自定义 HTTP 方法请求, 它会获取并返回结果内容,并自动关闭响应对象。

func (*Client) X请求泛型类

func (c *Client) X请求泛型类(上下文 context.Context, 方法 string, url string, 参数 ...interface{}) *泛型类.Var

RequestVar 使用给定的HTTP方法和数据发送请求,检索并将结果转换为指定的指针。 它会自动内部读取并关闭响应对象。 参数`pointer`可以是以下类型:struct/*struct/**struct/[]struct/[]*struct/*[]struct等。

func (*Client) X账号密码

func (c *Client) X账号密码(账号, 密码 string) *Client

BasicAuth 是一个链式函数, 用于为下一次请求设置HTTP基本认证信息。

func (*Client) X超时

func (c *Client) X超时(时长 time.Duration) *Client

Timeout 是一个链式函数, 用于设置下一次请求的超时时间。

func (*Client) X重定向次数限制

func (c *Client) X重定向次数限制(次数 int) *Client

RedirectLimit 是一个链式函数, 用于设置请求的重定向限制次数。

func (*Client) X重试与间隔

func (c *Client) X重试与间隔(重试次数 int, 重试间隔时长 time.Duration) *Client

Retry 是一个链式函数, 它在下一次请求失败时设置重试次数和间隔。

type Response

type Response struct {
	*http.Response // Response 是某个请求的底层 http.Response 对象。
	// contains filtered or unexported fields
}

Response 是用于客户端请求响应的结构体。

func (*Response) X关闭

func (r *Response) X关闭() error

Close在响应不再需要使用时关闭该响应。

func (*Response) X取Cookie

func (r *Response) X取Cookie(名称 string) string

GetCookie 根据指定的 `key` 获取并返回 cookie 的值。

func (*Response) X取CookieMap

func (r *Response) X取CookieMap() map[string]string

GetCookieMap 获取并返回当前cookie值的映射副本。

func (*Response) X取响应原始文本

func (r *Response) X取响应原始文本() string

RawResponse 返回响应的原始内容。

func (*Response) X取响应字节集

func (r *Response) X取响应字节集() []byte

ReadAll 方法获取并返回响应内容作为 []byte 类型的切片。

func (*Response) X取响应文本

func (r *Response) X取响应文本() string

ReadAllString 获取并返回响应内容作为字符串。

func (*Response) X取请求原始文本

func (r *Response) X取请求原始文本() string

RawRequest 返回请求的原始内容。

func (*Response) X取请求和响应原始文本

func (r *Response) X取请求和响应原始文本() string

Raw 返回请求和响应的原始文本。

func (*Response) X覆盖响应内容

func (r *Response) X覆盖响应内容(字节集 []byte)

SetBodyContent 函数用于覆盖并替换响应内容为自定义内容。

func (*Response) X请求和响应输出终端

func (r *Response) X请求和响应输出终端()

RawDump 将请求和响应的原始文本输出到标准输出(stdout)。

type WebSocketClient

type WebSocketClient struct {
	*websocket.Dialer
}

WebSocketClient 对底层的websocket客户端连接进行封装, 并提供了便捷的功能方法。

func X创建WebSocket

func X创建WebSocket() *WebSocketClient

NewWebSocket 创建并返回一个新的 WebSocketClient 对象。

type X中间件函数

type X中间件函数 = func(c *Client, r *http.Request) (*Response, error)

HandlerFunc 中间件处理函数

Jump to

Keyboard shortcuts

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