go实现urlencode与urldecode

做微信公众号开发时,前后端分离,需要前端传把URL过来,这边需要urldecode

urldecode与urlencode主要用到go官方的net/url库

func main()  {
        var urlStr string = "https://www.test.com?aaa=bbb&ccc=ddd#123"
        escapeUrl := url.QueryEscape(urlStr)
        fmt.Println("urlencode:",escapeUrl)
        enEscapeUrl, _ := url.QueryUnescape(escapeUrl)
        fmt.Println("urldecode:",enEscapeUrl)
}

公众号示例

package main
 
import(
        "fmt"
      url2  "net/url"
)
 
func GetSignPackage(ctx *gin.Context) {
    timestamp := strconv.FormatInt(int64(time.Now().Unix()), 10)
    code, ticket := common.GetTicket()
    if code != 0 {
        fmt.Println("code=", code)
        response.Fail(ctx, gin.H{}, "微信权限不够")
        return
    }
    nonceStr := util.RandomString(16)
    url,_:=url2.QueryUnescape(ctx.Query("url"))
    jsapiTicket := "jsapi_ticket=" + ticket + "&noncestr=" + nonceStr + "&timestamp=" + timestamp + "&url=" + url
    signPackage := SignPackage{
        AppId:     viper.GetString("wx.appid"),
        NonceStr:  nonceStr,
        Timestamp: timestamp,
        Signature: util.SHA1(jsapiTicket),
        Url:       url,
    }
    response.Success(ctx, gin.H{"package": signPackage}, "success")
    return
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容