莫一哲

VUE版本正在开发中,这个golang template版本即将退役 2018-11-07 22:29 by fifsky

玥玥开始攒肚了,每日每夜的睡,这爹妈不好当啊,不睡吧崩溃,睡不醒吧又担心是不是有问题~~ 2018-10-26 09:00 by fifsky

小玥儿满月了,能吃能睡,一切安好 2018-10-21 20:19 by fifsky

驱车来回500公里给小家伙上户口,我们家第一个城市身份证号码诞生了 2018-09-30 18:46 by fifsky

折磨我的老腰啊,可是这个小家伙依然没有出来的意思 2018-09-13 19:40 by fifsky

是时候学习VUE了,为了防止被前端淘汰 2018-08-24 01:04 by fifsky

Ant Design 无法保证业务产品能否成功,但是能帮助业务产品『正确的成功』或者『正确的失败』 2018-08-22 14:19 by fifsky

我慢慢地品,雪落下的声音,仿佛是你贴着我叫卿卿 2018-08-19 10:41 by fifsky

想写一点骚柔的文字,可以盯着屏幕久久的不知道该写点什么 2018-07-28 23:58 by fifsky

现在很少听李志的歌了,有人说,是现在的生活没那么苦了,可是,也许我们早已经习惯生活的苦了,致敬,逼哥的歌 2018-03-08 13:49 by fifsky

go对URL参数的处理类似PHP(http_build_query)

开始用GO写一些小代码,还是无法摆脱PHP的固定思维,在请求接口的时候php很容易就想到了http_build_query,到了GO里面就不知道改怎么处理了,特别是GO的强类型,处理起来异常痛苦,今天看到文章发现我自己实现的方式太山寨了,贴一下标准做法和山寨做法,如果你有什么更好的方式,欢迎交流

 func HttpBuildQuery(params map[string]string) (param_str string) {

	params_arr := make([]string, 0, len(params))

	for k, v := range params {
		params_arr = append(params_arr, fmt.Sprintf("%s=%s", k, v))
	}

	//fmt.Println(params_arr)

	param_str = strings.Join(params_arr, "&")
	return param_str
}


func main(){
	params := map[string]string{
		"action":        "getAccessToken",
		"client_code":   "aaaaa",
		"client_secret":  "ccccc",
		"interface":     "wxapi",
		"time":          strconv.FormatInt(time.Now().Unix(), 10),
	}
       
	param_str := HttpBuildQuery(params)

}

标准做法如下

q := url.Values{}

q.Set("action", "getAccessToken")
q.Set("client_code", clientCode)
q.Set("client_secret", clientSecret)
q.Set("interface", "wxapi")
q.Set("refresh", refresh)
q.Set("time", strconv.FormatInt(time.Now().Unix(), 10))
fmt.Printf(q.Encode())
 


  • 1
返回顶部