requests

package module
v0.0.0-...-0f17843 Latest Latest
Warning

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

Go to latest
Published: May 25, 2023 License: MIT Imports: 10 Imported by: 2

README

HTTP请求工具

go get -u github.com/crawler-go-go-go/go-requests

TODO

  • 方便的做响应格式处理
  • 兼容HTTP2
  • 兼容JA3指纹

Documentation

Index

Constants

View Source
const DefaultMaxTryTimes = 3

DefaultMaxTryTimes 默认情况下的最大重试次数

View Source
const DefaultMethod = http.MethodGet
View Source
const DefaultUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"

Variables

This section is empty.

Functions

func GetBytes

func GetBytes(ctx context.Context, targetUrl string, options ...*Options[any, []byte]) ([]byte, error)

func GetJson

func GetJson[Response any](ctx context.Context, targetUrl string, options ...*Options[any, Response]) (Response, error)

GetJson 响应内容是JSON格式的

func GetString

func GetString(ctx context.Context, targetUrl string, options ...*Options[any, []byte]) (string, error)

func GetYaml

func GetYaml[Response any](ctx context.Context, targetUrl string, options ...*Options[any, Response]) (Response, error)

GetYaml 响应内容是YAML格式的

func PostJson

func PostJson[Request any, Response any](ctx context.Context, targetUrl string, request Request, options ...*Options[Request, Response]) (Response, error)

func SendRequest

func SendRequest[Request any, Response any](ctx context.Context, options *Options[Request, Response]) (Response, error)

SendRequest 底层API,不建议直接调用

Types

type Options

type Options[Request any, Response any] struct {
	MaxTryTimes         int
	TargetURL           string
	Method              string
	Body                []byte
	RequestSettingSlice []RequestSetting
	ResponseHandler     ResponseHandler[Response]
}

func NewOptions

func NewOptions[Request any, Response any](targetUrl string, responseHandler ResponseHandler[Response]) *Options[Request, Response]

func (*Options[Request, Response]) AppendRequestSetting

func (x *Options[Request, Response]) AppendRequestSetting(requestSetting RequestSetting) *Options[Request, Response]

func (*Options[Request, Response]) WithBody

func (x *Options[Request, Response]) WithBody(body []byte) *Options[Request, Response]

func (*Options[Request, Response]) WithJsonResponseHandler

func (x *Options[Request, Response]) WithJsonResponseHandler() *Options[Request, Response]

func (*Options[Request, Response]) WithMaxTryTimes

func (x *Options[Request, Response]) WithMaxTryTimes(maxTryTimes int) *Options[Request, Response]

func (*Options[Request, Response]) WithMethod

func (x *Options[Request, Response]) WithMethod(method string) *Options[Request, Response]

func (*Options[Request, Response]) WithRequestSettingSlice

func (x *Options[Request, Response]) WithRequestSettingSlice(requestSettingSlice []RequestSetting) *Options[Request, Response]

func (*Options[Request, Response]) WithResponseHandler

func (x *Options[Request, Response]) WithResponseHandler(responseHandler ResponseHandler[Response]) *Options[Request, Response]

func (*Options[Request, Response]) WithTargetURL

func (x *Options[Request, Response]) WithTargetURL(targetURL string) *Options[Request, Response]

func (*Options[Request, Response]) WithYamlResponseHandler

func (x *Options[Request, Response]) WithYamlResponseHandler() *Options[Request, Response]

type RequestSetting

type RequestSetting func(client *http.Client, request *http.Request) error

func DefaultRequestSetting

func DefaultRequestSetting() RequestSetting

DefaultRequestSetting 每个请求默认添加的设置

func RequestSettingProxy

func RequestSettingProxy(proxy string) RequestSetting

RequestSettingProxy 配置代理IP

func RequestSettingSkipTlsVerify

func RequestSettingSkipTlsVerify() RequestSetting

RequestSettingSkipTlsVerify 跳过https证书验证

func RequestSettingUserAgent

func RequestSettingUserAgent(userAgent ...string) RequestSetting

RequestSettingUserAgent 设置User-Agent,如果不传递的则使用默认的User-Agent

type ResponseHandler

type ResponseHandler[Response any] func(httpResponse *http.Response) (Response, error)

func BytesResponseHandler

func BytesResponseHandler(readResponseOnStatusCodeIn ...int) ResponseHandler[[]byte]

func JsonResponseHandler

func JsonResponseHandler[Response any](readResponseOnStatusCodeIn ...int) ResponseHandler[Response]

func StringResponseHandler

func StringResponseHandler(readResponseOnStatusCodeIn ...int) ResponseHandler[string]

func YamlResponseHandler

func YamlResponseHandler[Response any](readResponseOnStatusCodeIn ...int) ResponseHandler[Response]

Directories

Path Synopsis
example

Jump to

Keyboard shortcuts

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