Go

go实现urlencode与urldecode

2022-01-25  本文已影响0人  php转go

做微信公众号开发时,前后端分离,需要前端传把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
}
上一篇下一篇

猜你喜欢

热点阅读