golang 类似PHP中 http_build_query 方法
代码:
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) }
golang 标准做法1:
import ( "fmt" "net/url" ) func main() { 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()) //此方法对中文不友好 }
golang 标准做法2:
import ( "fmt" "net/url" ) func main() { var uri url.URL q := uri.Query() q.Add("name", "张三") q.Add("age", "20") q.Add("sex", "1") queryStr := q.Encode() fmt.Println(queryStr) } //此方法会中文友好,且会把key按照字母 a-z 排序。