// Package request... // // Description : 解析请求 // // Author : go_developer@163.com<白茶清欢> // // Date : 2021-07-24 8:53 下午 package request import ( "net/url" "strings" "github.com/gin-gonic/gin" ) // ParseGetRequestURI 解析URL请求参数 // // Author : go_developer@163.com<白茶清欢> // // Date : 9:03 下午 2021/7/24 func ParseGetRequestURI(url *url.URL) map[string][]string { url.RawQuery = strings.TrimSpace(url.RawQuery) parseResult := make(map[string][]string) if len(url.RawQuery) == 0 { return parseResult } requestURIArr := strings.Split(url.RawQuery, "&") for _, kvPair := range requestURIArr { kvPair = strings.TrimSpace(kvPair) if len(kvPair) == 0 { continue } kvArr := strings.Split(kvPair, "=") _, keyExist := parseResult[kvArr[0]] if len(kvArr) == 1 { // 识别到 ?a=1&b=2&c 这种格式,默认补齐成 ?a=1&b=2&c= if keyExist { parseResult[kvPair] = append(parseResult[kvPair], "") } else { parseResult[kvPair] = []string{""} } continue } // 兼容参数值中包含=的情况 if keyExist { parseResult[kvArr[0]] = append(parseResult[kvArr[0]], strings.Join(kvArr[1:], "=")) } else { parseResult[kvArr[0]] = []string{strings.Join(kvArr[1:], "=")} } } return parseResult } // ParseGetRequestBody 解析get请求的body // // Author : zhangdeman001@ke.com<白茶清欢> // // Date : 9:07 下午 2021/7/24 func ParseGetRequestBody(ctx *gin.Context) { }