增加获取httpclient实例方法

This commit is contained in:
白茶清欢 2022-05-01 22:38:31 +08:00
parent cedfa9c3bf
commit e82dc1353d
2 changed files with 36 additions and 17 deletions

View File

@ -46,6 +46,7 @@ type ApiRequestConfig struct {
SuccessCodeList []string `json:"success_code_list"` // 代表请求成功的code列表
SuccessHttpCodeList []string `json:"success_http_code_list"` // 代表成功的http code列表
Parameter map[string]interface{} `json:"parameter"` // 传入的请求参数
CommonHeader map[string]string `json:"common_header"` // 全部请求都要传的header
Body []byte `json:"-"` // 请求体
FullURL string `json:"full_url"` // 完整请求地址
}

View File

@ -16,6 +16,8 @@ import (
"fmt"
"net/http"
"strings"
"github.com/ddliu/go-httpclient"
)
// Request 发送请求
@ -23,25 +25,25 @@ import (
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022/05/01 21:26:02
func Request(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func Request(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
apiConfig.Method = strings.ToUpper(apiConfig.Method)
switch apiConfig.Method {
case http.MethodGet:
return GET(apiConfig, param)
return GET(apiConfig, header, param)
case http.MethodPost:
return POST(apiConfig, param)
return POST(apiConfig, header, param)
case http.MethodPut:
return PUT(apiConfig, param)
return PUT(apiConfig, header, param)
case http.MethodDelete:
return DELETE(apiConfig, param)
return DELETE(apiConfig, header, param)
case http.MethodConnect:
return Connect(apiConfig, param)
return Connect(apiConfig, header, param)
case http.MethodOptions:
return OPTION(apiConfig, param)
return OPTION(apiConfig, header, param)
case http.MethodTrace:
return Trace(apiConfig, param)
return Trace(apiConfig, header, param)
case http.MethodPatch:
return Patch(apiConfig, param)
return Patch(apiConfig, header, param)
default:
return &ApiResponse{
RequestConfig: apiConfig,
@ -58,7 +60,7 @@ func Request(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResp
// Author : go_developer@163.com<白茶清欢>
//
// Date: 2022/05/01 21:29:09
func GET(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func GET(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
buildRequestURLAndParam(apiConfig, param)
return nil
}
@ -68,7 +70,7 @@ func GET(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022/05/01 21:31:36
func POST(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func POST(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
buildRequestURLAndParam(apiConfig, param)
return nil
}
@ -78,7 +80,7 @@ func POST(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiRespons
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022/05/01 21:31:52
func PUT(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func PUT(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
buildRequestURLAndParam(apiConfig, param)
return nil
}
@ -88,7 +90,7 @@ func PUT(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022/05/01 21:32:08
func DELETE(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func DELETE(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
buildRequestURLAndParam(apiConfig, param)
return nil
}
@ -98,7 +100,7 @@ func DELETE(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiRespo
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022/05/01 21:32:18
func OPTION(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func OPTION(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
buildRequestURLAndParam(apiConfig, param)
return nil
}
@ -108,7 +110,7 @@ func OPTION(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiRespo
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022/05/01 21:36:12
func Patch(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func Patch(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
buildRequestURLAndParam(apiConfig, param)
return nil
}
@ -118,7 +120,7 @@ func Patch(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiRespon
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022/05/01 21:36:24
func Trace(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func Trace(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
buildRequestURLAndParam(apiConfig, param)
return nil
}
@ -128,11 +130,27 @@ func Trace(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiRespon
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022/05/01 21:36:39
func Connect(apiConfig *ApiRequestConfig, param map[string]interface{}) *ApiResponse {
func Connect(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *ApiResponse {
buildRequestURLAndParam(apiConfig, param)
return nil
}
// getHttpClient 获取httpclient实例
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 22:27 2022/5/1
func getHttpClient(apiConfig *ApiRequestConfig, header map[string]string, param map[string]interface{}) *httpclient.HttpClient {
fullHeader := make(map[string]string)
for name, val := range apiConfig.CommonHeader {
fullHeader[name] = val
}
for name, val := range header {
fullHeader[name] = val
}
return httpclient.NewHttpClient().WithHeaders(fullHeader)
}
// buildRequestURLAndParam 构建完整请求URL与请求参数
//
// Author : go_developer@163.com<白茶清欢>