golang 类似PHP中 http_build_query 方法

我爱张智容 · · 2135 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

代码:

 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 排序。

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:我爱张智容

查看原文:golang 类似PHP中 http_build_query 方法

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2135 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传