1. 程式人生 > >GO中url.Values作為引數傳遞的兩種解析方法

GO中url.Values作為引數傳遞的兩種解析方法

方法一:
~~~
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
}
~~~