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

本文来自:简书

感谢作者:我爱张智容

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

相关阅读 >>

Golang反射用于什么场景

Golang 笔记之深入浮点数

Golang 如何部署到服务器?

整理在vscode中Go编码发生的问题

Golang检查文件是否存在的方法

Golang浮点数精度丢失问题扩展包怎么解决

Golang互斥锁

手撸Golang 基本数据结构与算法 归并排序

Go - 一个对新手很友好的项目(带界面)

手撸Golang spring ioc/aop 之2

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...