utils

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2020 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// NonceStr 生成一个长度为 2*n 的随机字符串,可 mock
	NonceStr = func(n int) string {
		buf := make([]byte, n)
		_, err := rand.Read(buf)
		if err != nil {
			panic(err)
		}
		return hex.EncodeToString(buf)
	}
)
View Source
var (
	// Now 返回当前时间,可 mock
	Now = time.Now
)

Functions

func MustTLSConfig

func MustTLSConfig(certPEMBlock, keyPEMBlock, caPEMBlock []byte) *tls.Config

MustTLSConfig 是 must 版 TLSConfig

func ReadAndReplaceRequestBody

func ReadAndReplaceRequestBody(req *http.Request) (reqBody []byte, err error)

ReadAndReplaceRequestBody 读取 Request 全部 body 并将 body 替换成 bytes.Buffer

func ReadAndReplaceResponseBody

func ReadAndReplaceResponseBody(resp *http.Response) (respBody []byte, err error)

ReadAndReplaceResponseBody 读取 Response 全部 body 并将 body 替换成 bytes.Buffer

func TLSConfig

func TLSConfig(certPEMBlock, keyPEMBlock, caPEMBlock []byte) (*tls.Config, error)

TLSConfig 根据 cert/key 以及(可选的)ca 创建一个 tls.Config,例如可用于配置 https:

tlsConfig, err := TLSConfig(certPEMBlock, keyPEMBlock, caPEMBlock)
if err != nil {
	...
}
client := &http.Client{
	Transport: &http.Transport{
		TLSClientConfig: tlsConfig,
	},
}

Types

type HTTPClient

type HTTPClient interface {
	// Do 发送请求,等待响应或错误;实现的行为应当与 http.Client.Do 一致
	Do(req *http.Request) (*http.Response, error)
}

HTTPClient 是对 http.Client 的一个泛化; 应用可以对 http.Client 进一步封装,例如添加请求/响应的日志记录等

var (
	// DefaultHTTPClient 为 wxdriver 默认 HTTPClient,30 秒超时
	DefaultHTTPClient HTTPClient = &http.Client{
		Timeout: 30 * time.Second,
	}
)

Jump to

Keyboard shortcuts

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