// Package request ... // // Description : gin ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-12-29 15:10 package request import ( "git.zhangdeman.cn/zhangdeman/wrapper" "github.com/gin-gonic/gin" "net/url" "strings" ) var ( WrapperHandle = &wrapperHandle{} ) type wrapperHandle struct { } // GetHeader 读取header // // Author : go_developer@163.com<白茶清欢> // // Date : 21:22 2023/12/25 func (wh *wrapperHandle) GetHeader(ctx *gin.Context, headerKey string, defaultVal string) string { if nil == ctx { return defaultVal } val := ctx.GetHeader(headerKey) return wrapper.TernaryOperator.String(len(val) > 0, wrapper.String(val), wrapper.String(defaultVal)).Value() } // GetCookie 读取cookie // // Author : go_developer@163.com<白茶清欢> // // Date : 21:23 2023/12/25 func (wh *wrapperHandle) GetCookie(ctx *gin.Context, cookieName string, defaultVal string) string { if nil == ctx { return "" } val, err := ctx.Cookie(cookieName) if nil != err { return defaultVal } return wrapper.TernaryOperator.String(len(val) > 0, wrapper.String(val), wrapper.String(defaultVal)).Value() } // GetUri 获取请求URI // // Author : go_developer@163.com<白茶清欢> // // Date : 15:13 2023/12/29 func (wh *wrapperHandle) GetUri(ctx *gin.Context, defaultVal string) string { if nil != ctx && nil != ctx.Request && nil != ctx.Request.URL { return ctx.Request.URL.Path } return defaultVal } // GetScheme 获取scheme // // Author : go_developer@163.com<白茶清欢> // // Date : 16:16 2024/1/2 func (wh *wrapperHandle) GetScheme(ctx *gin.Context, defaultVal string) string { if nil != ctx && nil != ctx.Request && nil != ctx.Request.URL { return ctx.Request.URL.Scheme } return defaultVal } // GetQuery 获取query参数 // // Author : go_developer@163.com<白茶清欢> // // Date : 16:03 2024/1/2 func (wh *wrapperHandle) GetQuery(ctx *gin.Context) url.Values { if nil != ctx && nil != ctx.Request && nil != ctx.Request.URL { return ctx.Request.URL.Query() } return make(url.Values) } // GetMethod 获取请求方法 // // Author : go_developer@163.com<白茶清欢> // // Date : 15:19 2024/1/2 func (wh *wrapperHandle) GetMethod(ctx *gin.Context) string { if nil != ctx && nil != ctx.Request { return ctx.Request.Method } return "" } // GetContentType 获取请求方式 // // Author : go_developer@163.com<白茶清欢> // // Date : 15:24 2023/12/29 func (wh *wrapperHandle) GetContentType(ctx *gin.Context, defaultVal string) string { if nil == ctx { return defaultVal } contentType := strings.ToLower(ctx.ContentType()) return wrapper.TernaryOperator.String(len(contentType) > 0, wrapper.String(contentType), wrapper.String(defaultVal)).Value() } // GetResponseBody 获取响应body // // Author : go_developer@163.com<白茶清欢> // // Date : 15:18 2024/1/2 func (wh *wrapperHandle) GetResponseBody(ctx *gin.Context, defaultVal string) string { return "" } // GetClientIp 获取请求客户端IP // // Author : go_developer@163.com<白茶清欢> // // Date : 16:31 2024/7/23 func (wh *wrapperHandle) GetClientIp(ctx *gin.Context, defaultVal string) string { if nil == ctx { return defaultVal } return ctx.ClientIP() } // GetUserAgent 获取user_agent // // Author : go_developer@163.com<白茶清欢> // // Date : 16:32 2024/7/23 func (wh *wrapperHandle) GetUserAgent(ctx *gin.Context, defaultVal string) string { if nil == ctx { return defaultVal } return ctx.Request.UserAgent() } // GetCtxData 获取请求上下文数据 // // Author : go_developer@163.com<白茶清欢> // // Date : 16:35 2024/7/23 func (wh *wrapperHandle) GetCtxData(ctx *gin.Context, key string, defaultVal any) any { if nil == ctx { return defaultVal } if val, exist := ctx.Get(key); !exist || nil == val { return defaultVal } else { return val } } // GetCtxStringData 获取字符串数据 // // Author : go_developer@163.com<白茶清欢> // // Date : 16:37 2024/7/23 func (wh *wrapperHandle) GetCtxStringData(ctx *gin.Context, key string, defaultVal string) string { if nil == ctx { return defaultVal } val := ctx.GetString(key) if len(val) == 0 { return defaultVal } return val } // GetCtxIntData 获取int数据 // // Author : go_developer@163.com<白茶清欢> // // Date : 16:39 2024/7/23 func (wh *wrapperHandle) GetCtxIntData(ctx *gin.Context, key string, defaultVal int64) int64 { if nil == ctx { return defaultVal } val := wh.GetCtxData(ctx, key, nil) if nil == val { return defaultVal } return ctx.GetInt64(key) }