diff --git a/src/handler/proxyhandler.go b/src/handler/proxyhandler.go index 2fb5d4dcc66adfff2f2a6ab2a6523abd5a7d4214..e690659de4b3afbe1a4c93edb063383d58a5b3d4 100644 --- a/src/handler/proxyhandler.go +++ b/src/handler/proxyhandler.go @@ -165,7 +165,22 @@ func Proxy(c *gin.Context) { reqURL.RawQuery = c.Request.URL.RawQuery } else { if c.Request.URL.RawQuery != "" { - reqURL.RawQuery += "&" + c.Request.URL.RawQuery + oldQ := c.Request.URL.Query() + newQ := c.Request.URL.Query() + for k, v := range newQ { + if len(v) > 1 { + for kk, vv := range v { + if kk == 0 { + oldQ.Set(k, vv) + } else { + oldQ.Add(k, vv) + } + } + } else { + oldQ.Set(k, v[0]) + } + } + reqURL.RawQuery = oldQ.Encode() } }