GO中url.Values作为参数传递的两种解析方法
2016-07-08 15:51
591 查看
方法一:
~~~
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 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 } ~~~
相关文章推荐
- HDU 1242 Rescue【BFS+优先队列】
- UIView的clipsToBounds属性和CALayer的masksToBounds属性的比较
- UIView的clipsToBounds属性和CALayer的masksToBounds属性的比较
- 3D UI场景中如何把XY平面的尺寸映射为屏幕像素
- JS中变量名作为if条件的 true/flase
- 虚拟现实-VR-UE4-编辑自定义Character-上下左右移动-旋转
- POJ2299 Ultra-QuickSor[树状数组+离散化 / 归并排序]
- UISearchController使用
- MySQL中char(36)被认为是GUID导致的BUG及解决方案
- EasyUI ComboGrid 集成分页、按键示例
- cannot find -luuid
- UITextFiled长度限制
- 2016.07.08,英语,《Vocabulary Builder》Unit 24
- 数据库连接池优化配置(druid,dbcp,c3p0)
- AngularUI Router
- Can't load native library. CPU arch invalid for this build
- hdu 5057 Argestes and Sequence(离线处理树状数组)
- 自定义Collection View布局
- Buileder(生成器)—对象创建型模式
- JAVA后台拼接json map类型,MAP类型中的VALUE对应List