是否有任何go包编码url?我需要在url中传输参数(在map [string] interface {}中输入)。
也许参数喜欢:map[string]interface{}{"app_id":"you_api","app_sign":"md5_base_16","timestamp":"1473655478000"}
如何编码以及编码结果是什么?
答案 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