Categorygithub.com/Yostardev/requests
repositorypackage
1.0.13
Repository: https://github.com/yostardev/requests.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

Build Status

项目简介

  • requests包是使用Go语言开发,模仿python的request包写的用于发起http请求,并返回响应结果的第三方包。

使用方法

go get -u github.com/tiancheng92/requests

requests库方法详解

requests(请求方法)

  • 用户需要创建一个requests对象,然后调用相应的方法来设置请求体(链式调用),最后调用Get、Post、Put、Patch、Delete或Head方法发送请求。
函数签名描述
func New() *request新建request对象
func (r *request) SetUrl(url string) *request设置请求的URL
func (r *request) SetRawBody(data string) *request设置请求体
func (r *request) SetJsonBody(data any) *request设置JSON请求体并添加JSON请求头
func (r *request) SetXMLBody(data any) *request设置XML请求体并添加XML请求头
func (r *request) SetRawQuery(data string) *request设置Query(纯字符串,如:a=1&b=2)
func (r *request) AddQuery(key, value string) *request以key/value对的形式逐一新增Query
func (r *request) AddCookie(cookie http.Cookie) *request新增Cookie
func (r *request) AddHeader(key, value string) *request新增Header头
func (r *request) AddFileField(key, value string) *request新增上传文件时附带的key/value对
func (r *request) AddFormHeader() *request添加表单请求头
func (r *request) AddJsonHeader() *request添加JSON请求头
func (r *request) AddXMLHeader() *request添加XML请求头
func (r *request) SetTimeOut(duration time.Duration) *request设置请求超时时间
func (r *request) SetUploadFileByFilePath(fieldName, filename string) *request设置要上传的文件路径
func (r *request) SetUploadFile(fieldName, filename string, fileData io.Reader) *request设置要上传的文件
func (r *request) SetTLS(TlSConfig *tls.Config) *request设置TLS
func (r *request) SetBasicAuth(username, password string) *request设置Basic Auth
func (r *request) Get() (*Response, error)发起Get请求
func (r *request) Post() (*Response, error)发起Post请求
func (r *request) Put() (*Response, error)发起Put请求
func (r *request) Patch() (*Response, error)发起Patch请求
func (r *request) Delete() (*Response, error)发起Delete请求
func (r *request) Head() (*Response, error)发起Head请求

response(返回内容)

  • 成功请求远端数据后,会返回一个response对象,该对象包含了请求的状态码(Response.StatusCode)、请求头(StatusCode.Header)、响应体(Response.Body) 、原生响应体(Response.RawResponse)。

ResponseBody(响应体)

函数签名描述
(rb ResponseBody) JsonBind(obj any) error把返回的JSON格式的Response.Body映射到指定对象中
(rb ResponseBody) XMLBind(obj any) error把返回的XML格式的Response.Body映射到指定对象中
(rb ResponseBody) String() string返回原生响应字符串

构建相关

json解析方式构建约束
encoding/jsongo build ...
github.com/goccy/go-jsongo build -tags=go_json ...
github.com/json-iterator/gogo build -tags=jsoniter ...