【问题标题】:How to encode url parameters in golang?如何在golang中编码url参数?
【发布时间】:2016-09-12 04:50:30
【问题描述】:

有没有go包来编码url?我需要在传入url之前编码一个参数(在map[string]interface{}中输入)。

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

【问题讨论】:

  • 请添加生成的 URL 的外观。目前这个问题太模糊了。
  • host:port/path?para={"key1": value1,"key2":"value2"},我想对参数(在映射结构中)进行编码并使用 json_encoded @RolandIllig 进行传输

标签: go


【解决方案1】:

有一种获取方法。

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())

}

【讨论】:

    【解决方案2】:

    您可以在此处查看如何对“键集”进行 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

    【讨论】:

      【解决方案3】:

      您可以为此使用内置库 urlurl.Parse(message)

      【讨论】:

        猜你喜欢
        • 2011-12-29
        • 2014-07-19
        • 1970-01-01
        • 1970-01-01
        • 2018-05-24
        • 2019-06-30
        • 2023-03-10
        • 1970-01-01
        • 2010-09-11
        相关资源
        最近更新 更多