Documentation
¶
Index ¶
- func Example()
- type AuthMiddleware
- type Client
- func (c *Client) Delete(url string) *Request
- func (c *Client) DownloadFile(url, savePath string) error
- func (c *Client) DownloadFileResume(url, savePath string) error
- func (c *Client) DownloadFileWithProgress(url, savePath string, callback func(downloaded, total int64)) error
- func (c *Client) DownloadToWriter(url string, writer io.Writer) error
- func (c *Client) Get(url string) *Request
- func (c *Client) GetFileInfo(url string) (*FileInfo, error)
- func (c *Client) Head(url string) *Request
- func (c *Client) NewRequest(method, url string) *Request
- func (c *Client) Options(url string) *Request
- func (c *Client) Patch(url string) *Request
- func (c *Client) Post(url string) *Request
- func (c *Client) Put(url string) *Request
- func (c *Client) SetCookie(key, value string) *Client
- func (c *Client) SetHeader(key, value string) *Client
- func (c *Client) SetHeaders(headers map[string]string) *Client
- func (c *Client) SetRetry(count int, delay time.Duration) *Client
- func (c *Client) SetTimeout(timeout time.Duration) *Client
- func (c *Client) UploadFile(url, fieldName, filePath string) (*Response, error)
- func (c *Client) UploadFileWithData(url, fieldName, filePath string, formData map[string]string) (*Response, error)
- func (c *Client) UploadFiles(url string, files map[string]string) (*Response, error)
- func (c *Client) UploadFromReader(url string, reader io.Reader, contentType string) (*Response, error)
- type ClientOption
- func WithBaseURL(baseURL string) ClientOption
- func WithCertificates(certFile, keyFile string) ClientOption
- func WithCookieJar(jar http.CookieJar) ClientOption
- func WithDebug(debug bool) ClientOption
- func WithHeaders(headers map[string]string) ClientOption
- func WithInsecureSkipVerify() ClientOption
- func WithLogger(logger Logger) ClientOption
- func WithMiddleware(middleware Middleware) ClientOption
- func WithProxy(proxyURL string) ClientOption
- func WithRetry(count int, delay time.Duration) ClientOption
- func WithSocks5Proxy(proxyAddr string) ClientOption
- func WithTLSConfig(config *tls.Config) ClientOption
- func WithTimeout(timeout time.Duration) ClientOption
- func WithTransport(transport *http.Transport) ClientOption
- type CustomHeaderMiddleware
- type DebugMiddleware
- type ErrorHandlerMiddleware
- type FileInfo
- type Logger
- type LoggingMiddleware
- type Middleware
- type RateLimitMiddleware
- type Request
- func (r *Request) Send() (*Response, error)
- func (r *Request) SetBasicAuth(username, password string) *Request
- func (r *Request) SetBearerToken(token string) *Request
- func (r *Request) SetBody(body interface{}) *Request
- func (r *Request) SetBodyReader(reader io.Reader) *Request
- func (r *Request) SetCookie(key, value string) *Request
- func (r *Request) SetFile(fieldName, filePath string) *Request
- func (r *Request) SetFiles(files map[string]string) *Request
- func (r *Request) SetForm(key, value string) *Request
- func (r *Request) SetFormData(data map[string]string) *Request
- func (r *Request) SetHeader(key, value string) *Request
- func (r *Request) SetHeaders(headers map[string]string) *Request
- func (r *Request) SetJSON(data interface{}) *Request
- func (r *Request) SetQuery(key, value string) *Request
- func (r *Request) SetQueryParams(params map[string]string) *Request
- func (r *Request) SetRetry(count int, delay time.Duration) *Request
- func (r *Request) SetTimeout(timeout time.Duration) *Request
- func (r *Request) SetXML(data interface{}) *Request
- func (r *Request) WithContext(ctx context.Context) *Request
- type Response
- func (r *Response) Body() ([]byte, error)
- func (r *Response) Close() error
- func (r *Response) GetCookie(name string) *http.Cookie
- func (r *Response) GetHeader(key string) string
- func (r *Response) IsClientError() bool
- func (r *Response) IsRedirect() bool
- func (r *Response) IsServerError() bool
- func (r *Response) IsSuccess() bool
- func (r *Response) JSON(v interface{}) error
- func (r *Response) Request() *http.Request
- func (r *Response) SaveToFile(filePath string) error
- func (r *Response) SaveToFileStream(filePath string) error
- func (r *Response) String() (string, error)
- func (r *Response) XML(v interface{}) error
- type RetryMiddleware
- type StatusCodeMiddleware
- type TimeoutMiddleware
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AuthMiddleware ¶
type AuthMiddleware struct {
// contains filtered or unexported fields
}
AuthMiddleware 认证中间件
func NewAuthMiddleware ¶
func NewAuthMiddleware(token string) *AuthMiddleware
NewAuthMiddleware 创建认证中间件
func (*AuthMiddleware) AfterResponse ¶
func (m *AuthMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后处理
func (*AuthMiddleware) BeforeRequest ¶
func (m *AuthMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前添加认证信息
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client HTTP 客户端(类似 Guzzle)
func (*Client) DownloadFile ¶
DownloadFile 下载文件
func (*Client) DownloadFileResume ¶
DownloadFileResume 断点续传下载
func (*Client) DownloadFileWithProgress ¶
func (c *Client) DownloadFileWithProgress(url, savePath string, callback func(downloaded, total int64)) error
DownloadFileWithProgress 下载文件(带进度回调)
func (*Client) DownloadToWriter ¶
DownloadToWriter 下载到 Writer
func (*Client) GetFileInfo ¶
GetFileInfo 获取远程文件信息
func (*Client) NewRequest ¶
NewRequest 创建新请求
func (*Client) SetHeaders ¶
SetHeaders 批量设置 Headers
func (*Client) SetTimeout ¶
SetTimeout 设置超时时间
func (*Client) UploadFile ¶
UploadFile 上传单个文件
func (*Client) UploadFileWithData ¶
func (c *Client) UploadFileWithData(url, fieldName, filePath string, formData map[string]string) (*Response, error)
UploadFileWithData 上传文件并附带表单数据
func (*Client) UploadFiles ¶
UploadFiles 上传多个文件
type ClientOption ¶
type ClientOption func(*Client)
ClientOption 客户端配置选项
func WithCertificates ¶
func WithCertificates(certFile, keyFile string) ClientOption
WithCertificates 设置客户端证书
func WithCookieJar ¶
func WithCookieJar(jar http.CookieJar) ClientOption
WithCookieJar 设置 Cookie Jar
func WithHeaders ¶
func WithHeaders(headers map[string]string) ClientOption
WithHeaders 设置默认 Headers
func WithInsecureSkipVerify ¶
func WithInsecureSkipVerify() ClientOption
WithInsecureSkipVerify 跳过 SSL 证书验证(不推荐生产环境)
func WithSocks5Proxy ¶
func WithSocks5Proxy(proxyAddr string) ClientOption
WithSocks5Proxy 设置 SOCKS5 代理
func WithTransport ¶
func WithTransport(transport *http.Transport) ClientOption
WithTransport 自定义 Transport
type CustomHeaderMiddleware ¶
type CustomHeaderMiddleware struct {
// contains filtered or unexported fields
}
CustomHeaderMiddleware 自定义 Header 中间件
func NewCustomHeaderMiddleware ¶
func NewCustomHeaderMiddleware(headers map[string]string) *CustomHeaderMiddleware
NewCustomHeaderMiddleware 创建自定义 Header 中间件
func (*CustomHeaderMiddleware) AfterResponse ¶
func (m *CustomHeaderMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后处理
func (*CustomHeaderMiddleware) BeforeRequest ¶
func (m *CustomHeaderMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前添加自定义 Header
type DebugMiddleware ¶
type DebugMiddleware struct {
// contains filtered or unexported fields
}
DebugMiddleware 调试中间件
func NewDebugMiddleware ¶
func NewDebugMiddleware(logger Logger) *DebugMiddleware
NewDebugMiddleware 创建调试中间件
func (*DebugMiddleware) AfterResponse ¶
func (m *DebugMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后打印调试信息
func (*DebugMiddleware) BeforeRequest ¶
func (m *DebugMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前打印调试信息
type ErrorHandlerMiddleware ¶
type ErrorHandlerMiddleware struct {
// contains filtered or unexported fields
}
ErrorHandlerMiddleware 错误处理中间件
func NewErrorHandlerMiddleware ¶
func NewErrorHandlerMiddleware(handler func(*Response) error) *ErrorHandlerMiddleware
NewErrorHandlerMiddleware 创建错误处理中间件
func (*ErrorHandlerMiddleware) AfterResponse ¶
func (m *ErrorHandlerMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后处理错误
func (*ErrorHandlerMiddleware) BeforeRequest ¶
func (m *ErrorHandlerMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前处理
type Logger ¶
type Logger interface {
Debug(msg string, fields ...interface{})
Info(msg string, fields ...interface{})
Error(msg string, fields ...interface{})
}
Logger 日志接口
type LoggingMiddleware ¶
type LoggingMiddleware struct {
// contains filtered or unexported fields
}
LoggingMiddleware 日志中间件
func NewLoggingMiddleware ¶
func NewLoggingMiddleware(logger Logger) *LoggingMiddleware
NewLoggingMiddleware 创建日志中间件
func (*LoggingMiddleware) AfterResponse ¶
func (m *LoggingMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后记录日志
func (*LoggingMiddleware) BeforeRequest ¶
func (m *LoggingMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前记录日志
type Middleware ¶
type Middleware interface {
BeforeRequest(req *http.Request) error
AfterResponse(resp *Response) error
}
Middleware 中间件接口
type RateLimitMiddleware ¶
type RateLimitMiddleware struct {
// contains filtered or unexported fields
}
RateLimitMiddleware 限流中间件
func NewRateLimitMiddleware ¶
func NewRateLimitMiddleware(requestsPerSecond int) *RateLimitMiddleware
NewRateLimitMiddleware 创建限流中间件
func (*RateLimitMiddleware) AfterResponse ¶
func (m *RateLimitMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后处理
func (*RateLimitMiddleware) BeforeRequest ¶
func (m *RateLimitMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前限流
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
Request HTTP 请求构建器
func (*Request) SetBasicAuth ¶
SetBasicAuth 设置 Basic 认证
func (*Request) SetBearerToken ¶
SetBearerToken 设置 Bearer Token
func (*Request) SetBodyReader ¶
SetBodyReader 设置请求体 Reader
func (*Request) SetFormData ¶
SetFormData 批量设置表单数据
func (*Request) SetHeaders ¶
SetHeaders 批量设置 Headers
func (*Request) SetQueryParams ¶
SetQueryParams 批量设置查询参数
func (*Request) SetTimeout ¶
SetTimeout 设置超时时间
type Response ¶
type Response struct {
StatusCode int
Status string
Headers http.Header
Cookies []*http.Cookie
// contains filtered or unexported fields
}
Response HTTP 响应
func (*Response) IsClientError ¶
IsClientError 判断是否客户端错误(4xx)
func (*Response) IsServerError ¶
IsServerError 判断是否服务器错误(5xx)
func (*Response) SaveToFile ¶
SaveToFile 保存响应到文件
func (*Response) SaveToFileStream ¶
SaveToFileStream 流式保存到文件(适合大文件)
type RetryMiddleware ¶
type RetryMiddleware struct {
// contains filtered or unexported fields
}
RetryMiddleware 重试中间件
func NewRetryMiddleware ¶
func NewRetryMiddleware(maxRetries int, retryDelay time.Duration) *RetryMiddleware
NewRetryMiddleware 创建重试中间件
func (*RetryMiddleware) AfterResponse ¶
func (m *RetryMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后处理
func (*RetryMiddleware) BeforeRequest ¶
func (m *RetryMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前处理
type StatusCodeMiddleware ¶
type StatusCodeMiddleware struct {
// contains filtered or unexported fields
}
StatusCodeMiddleware 状态码检查中间件
func NewStatusCodeMiddleware ¶
func NewStatusCodeMiddleware(allowedCodes []int) *StatusCodeMiddleware
NewStatusCodeMiddleware 创建状态码检查中间件
func (*StatusCodeMiddleware) AfterResponse ¶
func (m *StatusCodeMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后检查状态码
func (*StatusCodeMiddleware) BeforeRequest ¶
func (m *StatusCodeMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前处理
type TimeoutMiddleware ¶
type TimeoutMiddleware struct {
// contains filtered or unexported fields
}
TimeoutMiddleware 超时中间件
func NewTimeoutMiddleware ¶
func NewTimeoutMiddleware(timeout time.Duration) *TimeoutMiddleware
NewTimeoutMiddleware 创建超时中间件
func (*TimeoutMiddleware) AfterResponse ¶
func (m *TimeoutMiddleware) AfterResponse(resp *Response) error
AfterResponse 响应后处理
func (*TimeoutMiddleware) BeforeRequest ¶
func (m *TimeoutMiddleware) BeforeRequest(req *http.Request) error
BeforeRequest 请求前设置超时