如何在golang中编码url参数?

时间:2016-09-12 04:50:31

标签: go

是否有任何go包编码url?我需要在url中传输参数(在map [string] interface {}中输入)。

也许参数喜欢:map[string]interface{}{"app_id":"you_api","app_sign":"md5_base_16","timestamp":"1473655478000"} 如何编码以及编码结果是什么?

3 个答案:

答案 0 :(得分:3)

有一种获得它的方法。

package main

import (
    "fmt"
    "net/url"
    "encoding/json"
)

func main() {
    m := map[string]interface{}{"app_id": "you_api", "app_sign": "md5_base_16", "timestamp": "1473655478000"}
    json_str, _ := json.Marshal(m)
    fmt.Println(string(json_str[:]))

    values := url.Values{"para": {string(json_str[:])}}

    fmt.Println(values.Encode())

}

答案 1 :(得分:0)

您可以为此使用内置的url库。 url.Parse(message)

答案 2 :(得分:0)

您可以在此处查看如何对发送请求的“键集”(例如查询参数或表单值)进行urlencode

import "net/url"
encoded := url.Values{}
encoded.Set("grant_type", "urn:ibm:params:oauth:grant-type:apikey")
encoded.Set("apikey", conf.Apikey)

有关更多信息,请参见此处: https://github.com/alessiosavi/GoCloudant/blob/a8ad3a7990f04ea728bb327d6faea6af3e5455ca/cloudant.go#L117

以下几行代码库包装了用于执行上一代码中使用的HTTP请求的内置库: https://github.com/alessiosavi/Requests