GO中url.Values作為引數傳遞的兩種解析方法
阿新 • • 發佈:2019-02-15
方法一: ~~~ func MakeParams(params url.Values, appKey string) (params_str, sign_str string) { var s, p string var keys []string b := bytes.Buffer{} b.WriteString(appKey) for k, _ := range params { if k != "sign" { keys = append(keys, k) } } sort.Strings(keys) for _, v := range keys { b.WriteString(v) b.WriteString(params.Get(v)) } p = b.String() b.WriteString(appKey) s = b.String() p = strings.TrimRight(p, "&") return p, s } ~~~
方法二: ~~~ func MakeParams(params map[string][]string, appKey string) (params_str, sign_str string) { var s, p string var keys []string b := bytes.Buffer{} b.WriteString(appKey) for k, _ := range params { if k != "sign" { keys = append(keys, k) } } sort.Strings(keys) for _, v := range keys { b.WriteString(v) b.WriteString(params[v][0]) } p = b.String() b.WriteString(appKey) s = b.String() p = strings.TrimRight(p, "&") return p, s } ~~~