diff --git a/go.mod b/go.mod index 9b5e060..404f5f9 100644 --- a/go.mod +++ b/go.mod @@ -5,11 +5,8 @@ go 1.23.0 toolchain go1.24.1 require ( - git.zhangdeman.cn/gateway/httpclient v0.0.0-20241024134801-faef35748763 - git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250321102241-d6e86b64f7ca - git.zhangdeman.cn/zhangdeman/exception v0.0.0-20250207091724-ca151fbc1f06 + git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250328040304-7e4a6f9f148c git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20241223084948-de2e49144fcd - github.com/ddliu/go-httpclient v0.7.1 github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 github.com/go-resty/resty/v2 v2.16.5 github.com/mssola/user_agent v0.6.0 diff --git a/go.sum b/go.sum index 0de6242..b15e4ba 100644 --- a/go.sum +++ b/go.sum @@ -1,23 +1,13 @@ -git.zhangdeman.cn/gateway/httpclient v0.0.0-20241024134801-faef35748763 h1:g0njPNnh1BDilE1YHYEykAkc/NXHIphRE8jCnN0pT/0= -git.zhangdeman.cn/gateway/httpclient v0.0.0-20241024134801-faef35748763/go.mod h1:+zqRzmRb5m7RlmKyYUeONJYj4z9Ftytf5yMD59w+ziM= -git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250227040546-863c03f34bb8 h1:VEifPc+vkpEQoX9rj7zxmT1m+IA81XjOxe7+Z1aqWNM= -git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250227040546-863c03f34bb8/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k= -git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250321102241-d6e86b64f7ca h1:uxjzbY5fDozjyK6jkoQtuQouVTcVfXjbe3chARYSjRM= -git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250321102241-d6e86b64f7ca/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k= -git.zhangdeman.cn/zhangdeman/exception v0.0.0-20250207091724-ca151fbc1f06 h1:XsjGMkBCi93h56oCg5Lrz5zVpUxify/CQVhQU9+qLWM= -git.zhangdeman.cn/zhangdeman/exception v0.0.0-20250207091724-ca151fbc1f06/go.mod h1:Voc8J4ordx7nuMWpgACXXZULQy7ZIuBzcEIoS8VnDIw= +git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250328040304-7e4a6f9f148c h1:cl3gQGXQpJ8ugDs0C/hQLfcvF4lGBm5BeABLvROFDoM= +git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250328040304-7e4a6f9f148c/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k= git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20241223084948-de2e49144fcd h1:q7GG14qgXKB4MEXQFOe7/UYebsqMfPaSX80TcPdOosI= git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20241223084948-de2e49144fcd/go.mod h1:+D6uPSljwHywjVY5WSBY4TRVMj26TN5f5cFGEYMldjs= git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e h1:Q973S6CcWr1ICZhFI1STFOJ+KUImCl2BaIXm6YppBqI= git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e/go.mod h1:VpPjBlwz8U+OxZuxzHQBv1aEEZ3pStH6bZvT21ADEbI= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/ddliu/go-httpclient v0.7.1 h1:COWYBalfbaFNe6e0eQU38++vCD5kzLh1H1RFs3xcn9g= -github.com/ddliu/go-httpclient v0.7.1/go.mod h1:uwipe9x9SYGk4JhBemO7+dD87QbiY224y0DLB9OY0Ik= github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 h1:CaO/zOnF8VvUfEbhRatPcwKVWamvbYd8tQGRWacE9kU= github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1/go.mod h1:+hnT3ywWDTAFrW5aE+u2Sa/wT555ZqwoCS+pk3p6ry4= github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= @@ -37,8 +27,6 @@ github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JT github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= -golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= diff --git a/httpclient/cache/ICache.go b/httpclient/cache/ICache.go index 3b1da7f..d931357 100644 --- a/httpclient/cache/ICache.go +++ b/httpclient/cache/ICache.go @@ -7,7 +7,9 @@ // Date : 2024-06-03 15:49 package cache -import "git.zhangdeman.cn/gateway/httpclient/define" +import ( + "git.zhangdeman.cn/zhangdeman/network/httpclient/define" +) // ICache 缓存定义 // diff --git a/httpclient/client.go b/httpclient/client.go index 6de1ff5..ac8b82f 100644 --- a/httpclient/client.go +++ b/httpclient/client.go @@ -9,9 +9,9 @@ package httpclient import ( "fmt" - "git.zhangdeman.cn/gateway/httpclient/cache" - "git.zhangdeman.cn/gateway/httpclient/define" - "git.zhangdeman.cn/gateway/httpclient/validate" + "git.zhangdeman.cn/zhangdeman/network/httpclient/cache" + "git.zhangdeman.cn/zhangdeman/network/httpclient/define" + "git.zhangdeman.cn/zhangdeman/network/httpclient/validate" "git.zhangdeman.cn/zhangdeman/serialize" "github.com/go-resty/resty/v2" "github.com/tidwall/gjson" diff --git a/httpclient/define/error.go b/httpclient/define/error.go index e59378f..bee6f77 100644 --- a/httpclient/define/error.go +++ b/httpclient/define/error.go @@ -13,5 +13,6 @@ var ( ErrRequestConfigNil = errors.New("REQUEST_CONFIG_NIL") // 请求配置 nil ErrFullUrlEmpty = errors.New("FULL_URL_EMPTY") // 没传 full_url ErrFullUrlInvalid = errors.New("FULL_URL_Invalid") // 请求 full_url 不是 http 或者 https 开头 + ErrMethodIsEmpty = errors.New("METHOD_IS_EMPTY") // 请求 方法为空 ErrMethodIsNotSupport = errors.New("METHOD_IS_NOT_SUPPORT") // 请求 method不支持 ) diff --git a/httpclient/resty.go b/httpclient/resty.go index a7eded1..c5f7a15 100644 --- a/httpclient/resty.go +++ b/httpclient/resty.go @@ -9,8 +9,8 @@ package httpclient import ( "encoding/json" - "git.zhangdeman.cn/gateway/httpclient/define" "git.zhangdeman.cn/zhangdeman/consts" + "git.zhangdeman.cn/zhangdeman/network/httpclient/define" "git.zhangdeman.cn/zhangdeman/serialize" "github.com/go-resty/resty/v2" "github.com/tidwall/gjson" diff --git a/httpclient/validate/request_config.go b/httpclient/validate/request_config.go index 7b8e608..df06cc6 100644 --- a/httpclient/validate/request_config.go +++ b/httpclient/validate/request_config.go @@ -8,8 +8,10 @@ package validate import ( - "git.zhangdeman.cn/gateway/httpclient/define" + "git.zhangdeman.cn/zhangdeman/network/httpclient/define" + "git.zhangdeman.cn/zhangdeman/consts" "net/http" + "net/url" "strings" ) @@ -50,7 +52,12 @@ func (rc *requestConfig) initDefaultConfig(reqConfig *define.Request) { reqConfig.Header = map[string]string{} } if len(reqConfig.ContentType) > 0 { - reqConfig.Header["Content-Type"] = reqConfig.ContentType + reqConfig.Header[consts.HeaderKeyContentType.String()] = reqConfig.ContentType + } else { + if len(reqConfig.Header[consts.HeaderKeyContentType.String()]) == 0 { + // 没配置Content-Type, 默认JSON + reqConfig.Header[consts.HeaderKeyContentType.String()] = consts.MimeTypeJson + } } if nil == reqConfig.Cookie { reqConfig.Cookie = map[string]string{} @@ -89,7 +96,7 @@ func (rc *requestConfig) validateFullUrl(reqConfig *define.Request) error { if len(reqConfig.FullUrl) == 0 { return define.ErrFullUrlEmpty } - if !strings.HasPrefix(reqConfig.FullUrl, "http://") && !strings.HasPrefix(reqConfig.FullUrl, "https://") { + if _, err := url.Parse(reqConfig.FullUrl); nil != err { return define.ErrFullUrlInvalid } return nil @@ -104,7 +111,7 @@ func (rc *requestConfig) validateMethod(reqConfig *define.Request) error { // 验证Method reqConfig.Method = strings.ToUpper(reqConfig.Method) if len(reqConfig.Method) == 0 { - return define.ErrFullUrlEmpty + return define.ErrMethodIsEmpty } supportMethodList := []string{ http.MethodGet,