Documentation
¶
Index ¶
- Constants
- func GetRequestID(ctx context.Context) string
- func GetTraceID(ctx context.Context) string
- func SendHttpDeleteRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpDownloadFile(ctx context.Context, url string, headers interface{}, filePath string, ...) error
- func SendHttpGetRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpOptionsRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPatchFormRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPatchRawRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPatchRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPatchXMLRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPostFormRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPostMultipartRequest[T any](ctx context.Context, url string, headers interface{}, ...) (result T, err error)
- func SendHttpPostRawRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPostRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPostXMLRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPutFormRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPutRawRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPutRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SendHttpPutXMLRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
- func SetGlobalLogLevel(level LogLevel)
- func SetGlobalLogger(logger Logger)
- func StructJsonTagToStrMap(obj interface{}) (map[string]string, error)
- func WithRequestID(ctx context.Context, requestID string) context.Context
- func WithTraceID(ctx context.Context, traceID string) context.Context
- type Client
- type ClientOption
- func WithBaseURL(url string) ClientOption
- func WithDebug() ClientOption
- func WithLogger(logger Logger) ClientOption
- func WithRequestHooks(hooks ...RequestHook) ClientOption
- func WithRequestMiddlewares(middlewares ...RequestMiddleware) ClientOption
- func WithResponseHooks(hooks ...ResponseHook) ClientOption
- func WithRetryAfter(retryAfter resty.RetryAfterFunc) ClientOption
- func WithRetryConditions(conditions ...resty.RetryConditionFunc) ClientOption
- func WithRetryCount(count int) ClientOption
- func WithRetryMaxWaitTime(maxWaitTime time.Duration) ClientOption
- func WithRetryResetReaders(enabled bool) ClientOption
- func WithRetryWaitTime(waitTime time.Duration) ClientOption
- func WithTimeout(timeout time.Duration) ClientOption
- type DefaultLogger
- func (l *DefaultLogger) Debugf(ctx context.Context, msg string, args ...interface{})
- func (l *DefaultLogger) Errorf(ctx context.Context, msg string, args ...interface{})
- func (l *DefaultLogger) Infof(ctx context.Context, msg string, args ...interface{})
- func (l *DefaultLogger) LogMode(level LogLevel) Logger
- func (l *DefaultLogger) Slowf(ctx context.Context, begin time.Time, url string)
- type Errors
- type LogContextKey
- type LogLevel
- type Logger
- type MultipartFile
- func NewMultipartFileFromBytes(fieldName string, fileName string, content []byte) (MultipartFile, error)
- func NewMultipartFileFromPath(fieldName string, filePath string) (MultipartFile, error)
- func NewMultipartFileFromReader(fieldName string, fileName string, reader io.Reader) (MultipartFile, error)
- type MultipartFormField
- type MultipartRequestData
- type NetworkError
- type RawResponse
- type Request
- func (c *Request[T]) AddRequestHooks(hooks ...RequestHook) *Request[T]
- func (c *Request[T]) AddResponseHooks(hooks ...ResponseHook) *Request[T]
- func (c *Request[T]) Delete(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) DownloadFile(ctx context.Context, url string, filePath string, queryParams interface{}) error
- func (c *Request[T]) Get(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) Head(ctx context.Context, url string, data interface{}) (RawResponse, error)
- func (c *Request[T]) Options(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) Patch(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PatchForm(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PatchRaw(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PatchXML(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) Post(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PostForm(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PostMultipart(ctx context.Context, url string, data MultipartRequestData) (result T, err error)
- func (c *Request[T]) PostRaw(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PostXML(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) Put(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PutForm(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PutRaw(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) PutXML(ctx context.Context, url string, data interface{}) (result T, err error)
- func (c *Request[T]) SendRawResponse(ctx context.Context, method string, url string, data interface{}) (RawResponse, error)
- func (c *Request[T]) SetDebug(debug bool) *Request[T]
- func (c *Request[T]) SetHeaders(headers interface{}) *Request[T]
- func (c *Request[T]) SetTimeout(timeout time.Duration) *Request[T]
- func (c *Request[T]) UseMiddlewares(middlewares ...RequestMiddleware) *Request[T]
- type RequestExecutor
- type RequestHook
- type RequestMiddleware
- type ResponseDecodeError
- type ResponseHook
- type ResponseStatusError
- type TimeoutError
Constants ¶
const ( HttpStatus400Error = "bad request" HttpStatus401Error = "unauthorized" HttpStatus403Error = "forbidden" HttpStatus404Error = "not found" HttpStatus405Error = "method not allowed" HttpStatus408Error = "request timeout" HttpStatus429Error = "too many requests" HttpStatus500Error = "internal server error" HttpStatus502Error = "bad gateway" HttpStatus503Error = "service unavailable" HttpStatus504Error = "gateway timeout" )
HTTP状态码对应的错误信息
Variables ¶
This section is empty.
Functions ¶
func GetRequestID ¶ added in v1.2.2
GetRequestID 获取上下文中的 RequestID。 ctx: 上下文对象。 返回值: RequestID 字符串,若不存在则返回空字符串。
func GetTraceID ¶ added in v1.2.2
GetTraceID 获取上下文中的 TraceID。 ctx: 上下文对象。 返回值: TraceID 字符串,若不存在则返回空字符串。
func SendHttpDeleteRequest ¶ added in v1.2.0
func SendHttpDeleteRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpDeleteRequest 发送一个 HTTP DELETE 请求,自动创建客户端并发起请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpDownloadFile ¶ added in v1.2.2
func SendHttpDownloadFile(ctx context.Context, url string, headers interface{}, filePath string, queryParams interface{}) error
SendHttpDownloadFile 下载文件并保存到本地。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 filePath: 保存路径。 queryParams: 查询参数。 返回值: error 错误信息。
func SendHttpGetRequest ¶
func SendHttpGetRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpGetRequest 发送一个 HTTP GET 请求,自动创建客户端并发起请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 查询参数(结构体、map等,自动转换为 query string)。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpOptionsRequest ¶ added in v1.2.2
func SendHttpOptionsRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpOptionsRequest 发送一个 HTTP OPTIONS 请求,自动创建客户端并发起请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 查询参数。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPatchFormRequest ¶ added in v1.2.2
func SendHttpPatchFormRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPatchFormRequest 发送 application/x-www-form-urlencoded PATCH 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 表单数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPatchRawRequest ¶ added in v1.2.2
func SendHttpPatchRawRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPatchRawRequest 发送原始数据 PATCH 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPatchRequest ¶ added in v1.2.2
func SendHttpPatchRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPatchRequest 发送一个 HTTP PATCH 请求,自动创建客户端并发起请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPatchXMLRequest ¶ added in v1.2.2
func SendHttpPatchXMLRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPatchXMLRequest 发送 application/xml PATCH 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPostFormRequest ¶ added in v1.2.2
func SendHttpPostFormRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPostFormRequest 发送 application/x-www-form-urlencoded POST 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 表单数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPostMultipartRequest ¶ added in v1.2.2
func SendHttpPostMultipartRequest[T any](ctx context.Context, url string, headers interface{}, data MultipartRequestData) (result T, err error)
SendHttpPostMultipartRequest 发送一个 multipart/form-data 的 HTTP POST 请求,自动创建客户端并发起请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: multipart 请求数据(文本字段与文件字段)。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPostRawRequest ¶ added in v1.2.2
func SendHttpPostRawRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPostRawRequest 发送原始数据 POST 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPostRequest ¶
func SendHttpPostRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPostRequest 发送一个 HTTP POST 请求,自动创建客户端并发起请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPostXMLRequest ¶ added in v1.2.2
func SendHttpPostXMLRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPostXMLRequest 发送 application/xml POST 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPutFormRequest ¶ added in v1.2.2
func SendHttpPutFormRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPutFormRequest 发送 application/x-www-form-urlencoded PUT 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 表单数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPutRawRequest ¶ added in v1.2.2
func SendHttpPutRawRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPutRawRequest 发送原始数据 PUT 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPutRequest ¶ added in v1.2.0
func SendHttpPutRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPutRequest 发送一个 HTTP PUT 请求,自动创建客户端并发起请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SendHttpPutXMLRequest ¶ added in v1.2.2
func SendHttpPutXMLRequest[T any](ctx context.Context, url string, headers interface{}, data interface{}) (result T, err error)
SendHttpPutXMLRequest 发送 application/xml PUT 请求。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func SetGlobalLogLevel ¶ added in v1.1.0
func SetGlobalLogLevel(level LogLevel)
SetGlobalLogLevel 设置全局日志级别
func SetGlobalLogger ¶ added in v1.1.0
func SetGlobalLogger(logger Logger)
SetGlobalLogger 设置全局日志记录器
func StructJsonTagToStrMap ¶
func WithRequestID ¶ added in v1.2.2
WithRequestID 设置 RequestID 到上下文。 ctx: 上下文对象。 requestID: RequestID 值。 返回值: 新的上下文对象。
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client 封装了底层 resty.Client、日志和调试配置,是 HTTP 请求的核心客户端。
func New ¶ added in v1.0.0
func New(options ...ClientOption) *Client
New 创建一个新的 HTTP 客户端实例,可通过可选参数自定义超时、日志等配置。 options: 可选的客户端配置函数(如 WithTimeout、WithLogger 等)。 返回值: *Client 新的客户端实例。
type ClientOption ¶ added in v1.1.0
type ClientOption func(*Client)
ClientOption 定义客户端配置函数类型,用于自定义 Client 行为。
func WithBaseURL ¶ added in v1.1.0
func WithBaseURL(url string) ClientOption
WithBaseURL 设置基础请求地址,后续请求将自动拼接。 url: 基础 URL。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithDebug ¶ added in v1.1.0
func WithDebug() ClientOption
WithDebug 启用调试模式,日志级别自动提升为 Debug。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithLogger ¶ added in v1.1.0
func WithLogger(logger Logger) ClientOption
WithLogger 设置自定义日志记录器。 logger: 实现 Logger 接口的日志对象。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithRequestHooks ¶ added in v1.2.2
func WithRequestHooks(hooks ...RequestHook) ClientOption
WithRequestHooks 设置请求前置 Hook。 hooks: 请求前置 Hook 列表。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithRequestMiddlewares ¶ added in v1.2.2
func WithRequestMiddlewares(middlewares ...RequestMiddleware) ClientOption
WithRequestMiddlewares 设置请求中间件。 middlewares: 中间件列表。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithResponseHooks ¶ added in v1.2.2
func WithResponseHooks(hooks ...ResponseHook) ClientOption
WithResponseHooks 设置响应后置 Hook。 hooks: 响应后置 Hook 列表。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithRetryAfter ¶ added in v1.2.2
func WithRetryAfter(retryAfter resty.RetryAfterFunc) ClientOption
WithRetryAfter 设置重试退避策略。 retryAfter: 重试等待计算函数。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithRetryConditions ¶ added in v1.2.2
func WithRetryConditions(conditions ...resty.RetryConditionFunc) ClientOption
WithRetryConditions 设置重试条件。 conditions: 重试条件列表。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithRetryCount ¶ added in v1.1.0
func WithRetryCount(count int) ClientOption
WithRetryCount 设置请求重试次数。 count: 重试次数。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithRetryMaxWaitTime ¶ added in v1.2.2
func WithRetryMaxWaitTime(maxWaitTime time.Duration) ClientOption
WithRetryMaxWaitTime 设置重试最大等待时间。 maxWaitTime: 最大等待时长。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithRetryResetReaders ¶ added in v1.2.2
func WithRetryResetReaders(enabled bool) ClientOption
WithRetryResetReaders 设置重试时是否重置 multipart 读取器。 enabled: 是否启用重置。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithRetryWaitTime ¶ added in v1.2.2
func WithRetryWaitTime(waitTime time.Duration) ClientOption
WithRetryWaitTime 设置重试等待时间。 waitTime: 重试等待时长。 返回值: ClientOption,可用于 New 创建客户端时传入。
func WithTimeout ¶ added in v1.1.0
func WithTimeout(timeout time.Duration) ClientOption
WithTimeout 设置 HTTP 客户端超时时间。 timeout: 超时时长。 返回值: ClientOption,可用于 New 创建客户端时传入。
type DefaultLogger ¶ added in v1.1.0
type DefaultLogger struct {
// contains filtered or unexported fields
}
DefaultLogger 实现默认的日志记录功能
func NewDefaultLogger ¶ added in v1.1.0
func NewDefaultLogger() *DefaultLogger
NewDefaultLogger 创建并返回一个新的默认日志记录器 默认日志级别为 Info,慢请求阈值为 60 秒
func (*DefaultLogger) Debugf ¶ added in v1.1.1
func (l *DefaultLogger) Debugf(ctx context.Context, msg string, args ...interface{})
Debugf 记录调试级别的日志信息 仅当日志级别大于等于 Debug 时才会输出
func (*DefaultLogger) Errorf ¶ added in v1.1.1
func (l *DefaultLogger) Errorf(ctx context.Context, msg string, args ...interface{})
Errorf 记录错误级别的日志 仅当日志级别大于等于 Error 时才会输出
func (*DefaultLogger) Infof ¶ added in v1.1.1
func (l *DefaultLogger) Infof(ctx context.Context, msg string, args ...interface{})
Infof 记录信息级别的日志 仅当日志级别大于等于 Info 时才会输出
func (*DefaultLogger) LogMode ¶ added in v1.1.0
func (l *DefaultLogger) LogMode(level LogLevel) Logger
LogMode 设置日志级别并返回新的日志记录器实例 该方法不会修改原有记录器的设置
type LogContextKey ¶ added in v1.2.2
type LogContextKey string
LogContextKey 定义日志上下文的键类型。
const ( // TraceIDContextKey TraceID 上下文键 TraceIDContextKey LogContextKey = "traceId" // RequestIDContextKey RequestID 上下文键 RequestIDContextKey LogContextKey = "requestId" )
type LogLevel ¶ added in v1.1.0
type LogLevel int
LogLevel log level LogLevel 定义日志级别类型,用于控制日志输出的详细程度
type Logger ¶ added in v1.1.0
type Logger interface {
// LogMode 设置日志级别并返回新的日志记录器
LogMode(LogLevel) Logger
// Infof 记录信息级别的日志,支持格式化输出
Infof(context.Context, string, ...interface{})
// Errorf 记录错误级别的日志,支持格式化输出
Errorf(context.Context, string, ...interface{})
// Slowf 记录慢请求信息,包含请求开始时间和URL
Slowf(ctx context.Context, begin time.Time, url string)
// Debugf 记录调试级别的日志,支持格式化输出
Debugf(ctx context.Context, msg string, args ...interface{})
}
Logger 定义日志接口,提供不同级别的日志记录功能
type MultipartFile ¶ added in v1.2.2
type MultipartFile struct {
FieldName string
FileName string
Reader io.Reader
// contains filtered or unexported fields
}
MultipartFile 定义 multipart/form-data 的文件字段。
func NewMultipartFileFromBytes ¶ added in v1.2.2
func NewMultipartFileFromBytes(fieldName string, fileName string, content []byte) (MultipartFile, error)
NewMultipartFileFromBytes 基于字节内容创建文件字段。 fieldName: 表单字段名。 fileName: 文件名。 content: 文件内容。 返回值: MultipartFile 文件字段。 错误: 字段名或文件名为空时返回错误。
func NewMultipartFileFromPath ¶ added in v1.2.2
func NewMultipartFileFromPath(fieldName string, filePath string) (MultipartFile, error)
NewMultipartFileFromPath 基于文件路径创建文件字段。 fieldName: 表单字段名。 filePath: 文件路径。 返回值: MultipartFile 文件字段。 错误: 字段名为空或文件打开失败时返回错误。
func NewMultipartFileFromReader ¶ added in v1.2.2
func NewMultipartFileFromReader(fieldName string, fileName string, reader io.Reader) (MultipartFile, error)
NewMultipartFileFromReader 基于 Reader 创建文件字段。 fieldName: 表单字段名。 fileName: 文件名。 reader: 文件读取器。 返回值: MultipartFile 文件字段。 错误: 字段名或文件名为空、reader 为空时返回错误。
type MultipartFormField ¶ added in v1.2.2
MultipartFormField 定义 multipart/form-data 的文本字段。
type MultipartRequestData ¶ added in v1.2.2
type MultipartRequestData struct {
FormFields any
Files []MultipartFile
}
MultipartRequestData 定义 multipart/form-data 的请求数据。
type RawResponse ¶ added in v1.2.2
RawResponse 定义原始响应结构。
func SendHttpHeadRequest ¶ added in v1.2.2
func SendHttpHeadRequest(ctx context.Context, url string, headers interface{}, data interface{}) (RawResponse, error)
SendHttpHeadRequest 发送一个 HTTP HEAD 请求,自动创建客户端并返回原始响应。 ctx: 上下文对象,用于控制超时和取消。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 查询参数。 返回值: RawResponse 原始响应,error 错误信息。
func SendHttpRawResponseRequest ¶ added in v1.2.2
func SendHttpRawResponseRequest(ctx context.Context, method string, url string, headers interface{}, data interface{}) (RawResponse, error)
SendHttpRawResponseRequest 发送请求并返回原始响应。 ctx: 上下文对象,用于控制超时和取消。 method: HTTP 方法。 url: 请求地址。 headers: 请求头(结构体、map等,支持多种格式)。 data: 请求数据。 返回值: RawResponse 原始响应,error 错误信息。
type Request ¶
type Request[T any] struct { // contains filtered or unexported fields }
Request 泛型 HTTP 请求结构体,封装了请求参数、头部、调试开关和日志。 T 为响应体类型,支持泛型解析。
func NewRequest ¶ added in v1.0.0
NewRequest 创建一个新的泛型 HTTP 请求对象。 client: 需要绑定的 Client 实例。 返回值: *Request[T] 泛型请求对象,可链式调用设置参数和发起请求。
func (*Request[T]) AddRequestHooks ¶ added in v1.2.2
func (c *Request[T]) AddRequestHooks(hooks ...RequestHook) *Request[T]
AddRequestHooks 添加请求前置 Hook。 hooks: 请求前置 Hook 列表。 返回值: *Request[T] 支持链式调用。
func (*Request[T]) AddResponseHooks ¶ added in v1.2.2
func (c *Request[T]) AddResponseHooks(hooks ...ResponseHook) *Request[T]
AddResponseHooks 添加响应后置 Hook。 hooks: 响应后置 Hook 列表。 返回值: *Request[T] 支持链式调用。
func (*Request[T]) Delete ¶ added in v1.2.0
func (c *Request[T]) Delete(ctx context.Context, url string, data interface{}) (result T, err error)
Delete 发送 HTTP DELETE 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) DownloadFile ¶ added in v1.2.2
func (c *Request[T]) DownloadFile(ctx context.Context, url string, filePath string, queryParams interface{}) error
DownloadFile 下载文件并保存到本地。 ctx: 上下文对象。 url: 请求地址。 filePath: 保存路径。 queryParams: 查询参数。 返回值: error 错误信息。
func (*Request[T]) Get ¶
Get 发送 HTTP GET 请求。 ctx: 上下文对象。 url: 请求地址。 data: 查询参数(结构体、map等,自动转换为 query string)。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) Head ¶ added in v1.2.2
Head 发送 HTTP HEAD 请求并返回原始响应。 ctx: 上下文对象。 url: 请求地址。 data: 查询参数。 返回值: RawResponse 原始响应,error 错误信息。
func (*Request[T]) Options ¶ added in v1.2.2
func (c *Request[T]) Options(ctx context.Context, url string, data interface{}) (result T, err error)
Options 发送 HTTP OPTIONS 请求。 ctx: 上下文对象。 url: 请求地址。 data: 查询参数。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) Patch ¶ added in v1.2.2
Patch 发送 HTTP PATCH 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PatchForm ¶ added in v1.2.2
func (c *Request[T]) PatchForm(ctx context.Context, url string, data interface{}) (result T, err error)
PatchForm 发送 application/x-www-form-urlencoded PATCH 请求。 ctx: 上下文对象。 url: 请求地址。 data: 表单数据(结构体、map等)。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PatchRaw ¶ added in v1.2.2
func (c *Request[T]) PatchRaw(ctx context.Context, url string, data interface{}) (result T, err error)
PatchRaw 发送原始数据 PATCH 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PatchXML ¶ added in v1.2.2
func (c *Request[T]) PatchXML(ctx context.Context, url string, data interface{}) (result T, err error)
PatchXML 发送 application/xml PATCH 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) Post ¶
Post 发送 HTTP POST 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PostForm ¶ added in v1.2.2
func (c *Request[T]) PostForm(ctx context.Context, url string, data interface{}) (result T, err error)
PostForm 发送 application/x-www-form-urlencoded POST 请求。 ctx: 上下文对象。 url: 请求地址。 data: 表单数据(结构体、map等)。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PostMultipart ¶ added in v1.2.2
func (c *Request[T]) PostMultipart(ctx context.Context, url string, data MultipartRequestData) (result T, err error)
PostMultipart 发送 multipart/form-data 的 HTTP POST 请求。 ctx: 上下文对象。 url: 请求地址。 data: multipart 请求数据(文本字段与文件字段)。 返回值: 泛型 T 的响应结果,error 错误信息。 错误: 文件字段为空、字段校验失败或请求异常时返回。
func (*Request[T]) PostRaw ¶ added in v1.2.2
func (c *Request[T]) PostRaw(ctx context.Context, url string, data interface{}) (result T, err error)
PostRaw 发送原始数据 POST 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PostXML ¶ added in v1.2.2
func (c *Request[T]) PostXML(ctx context.Context, url string, data interface{}) (result T, err error)
PostXML 发送 application/xml POST 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) Put ¶ added in v1.2.0
Put 发送 HTTP PUT 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PutForm ¶ added in v1.2.2
func (c *Request[T]) PutForm(ctx context.Context, url string, data interface{}) (result T, err error)
PutForm 发送 application/x-www-form-urlencoded PUT 请求。 ctx: 上下文对象。 url: 请求地址。 data: 表单数据(结构体、map等)。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PutRaw ¶ added in v1.2.2
func (c *Request[T]) PutRaw(ctx context.Context, url string, data interface{}) (result T, err error)
PutRaw 发送原始数据 PUT 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) PutXML ¶ added in v1.2.2
func (c *Request[T]) PutXML(ctx context.Context, url string, data interface{}) (result T, err error)
PutXML 发送 application/xml PUT 请求。 ctx: 上下文对象。 url: 请求地址。 data: 请求体数据。 返回值: 泛型 T 的响应结果,error 错误信息。
func (*Request[T]) SendRawResponse ¶ added in v1.2.2
func (c *Request[T]) SendRawResponse(ctx context.Context, method string, url string, data interface{}) (RawResponse, error)
SendRawResponse 发送请求并返回原始响应。 ctx: 上下文对象。 method: HTTP 方法。 url: 请求地址。 data: 请求数据(GET/HEAD/OPTIONS 为查询参数,其它方法为请求体)。 返回值: RawResponse 原始响应,error 错误信息。
func (*Request[T]) SetDebug ¶ added in v1.1.1
SetDebug 开启或关闭调试模式,调试模式下日志级别为 Debug。 debug: 是否开启调试。 返回值: *Request[T] 支持链式调用。 注意事项: 关闭调试将恢复为客户端日志器的配置。
func (*Request[T]) SetHeaders ¶
SetHeaders 设置请求头信息,可多次调用叠加不同格式的头部。 headers: 支持结构体、map等多种格式,自动转换为字符串键值对。 返回值: *Request[T] 支持链式调用。
func (*Request[T]) SetTimeout ¶ added in v1.2.2
SetTimeout 设置请求级超时时间。 timeout: 超时时长。 返回值: *Request[T] 支持链式调用。 注意事项: 超时时间仅对当前请求实例有效。
func (*Request[T]) UseMiddlewares ¶ added in v1.2.2
func (c *Request[T]) UseMiddlewares(middlewares ...RequestMiddleware) *Request[T]
UseMiddlewares 添加请求中间件。 middlewares: 中间件列表。 返回值: *Request[T] 支持链式调用。
type RequestExecutor ¶ added in v1.2.2
RequestExecutor 定义请求执行器。
type RequestHook ¶ added in v1.2.2
RequestHook 定义请求前置 Hook。
type RequestMiddleware ¶ added in v1.2.2
type RequestMiddleware func(context.Context, *resty.Request, RequestExecutor) (*resty.Response, error)
RequestMiddleware 定义请求中间件。
type ResponseDecodeError ¶ added in v1.2.2
type ResponseDecodeError struct {
Cause error
}
ResponseDecodeError 表示响应解析错误。
func (ResponseDecodeError) Error ¶ added in v1.2.2
func (e ResponseDecodeError) Error() string
Error 返回错误信息。
func (ResponseDecodeError) Unwrap ¶ added in v1.2.2
func (e ResponseDecodeError) Unwrap() error
Unwrap 返回原始错误。
type ResponseHook ¶ added in v1.2.2
ResponseHook 定义响应后置 Hook。
type ResponseStatusError ¶ added in v1.2.2
ResponseStatusError 表示非成功 HTTP 状态码错误。
func (ResponseStatusError) Error ¶ added in v1.2.2
func (e ResponseStatusError) Error() string
Error 返回错误信息。