From 6f1c0fb21175e4d54ab00856a897043e86457fa5 Mon Sep 17 00:00:00 2001 From: hujiebin Date: Tue, 16 May 2023 13:39:03 +0800 Subject: [PATCH] url test --- route/group_r/group_info.go | 20 ++++++++++++++++++-- test/url_test.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 test/url_test.go diff --git a/route/group_r/group_info.go b/route/group_r/group_info.go index 74b8e45..32e8803 100644 --- a/route/group_r/group_info.go +++ b/route/group_r/group_info.go @@ -38,6 +38,7 @@ import ( "hilo-group/myerr/bizerr" "hilo-group/req" "hilo-group/resp" + "net/url" "sort" "strconv" "strings" @@ -829,12 +830,27 @@ func GroupBannerList(c *gin.Context) (*mycontext.MyContext, error) { if v.Area == 3 && !utils.IsInStringList(country, v.CountryList) { continue } - + actionUrl := v.Url + if uri, err := url.Parse(actionUrl); err == nil { + query := uri.RawQuery + queryArr := strings.Split(query, "&") + v := url.Values{} + if len(queryArr) > 0 { + for _, q := range queryArr { + if arr := strings.Split(q, "="); len(arr) == 2 { + v.Add(arr[0], arr[1]) + } + } + } + v.Add("direction", "1") // todo for test + uri.RawQuery = v.Encode() + actionUrl = uri.String() + } groupBanners = append(groupBanners, GroupBanner{ H5Url: v.Url, BannerUrl: v.Image, GroupId: groupMap[v.GroupCode], - ActionUrl: v.Url, + ActionUrl: actionUrl, }) } resp.ResponseOk(c, groupBanners) diff --git a/test/url_test.go b/test/url_test.go new file mode 100644 index 0000000..5cc999f --- /dev/null +++ b/test/url_test.go @@ -0,0 +1,34 @@ +package test + +import ( + "fmt" + "net/url" + "path" + "strings" + "testing" +) + +func TestUrlParse(t *testing.T) { + //rawUrl := "https://pkg.go.dev/net/url?a=b&c=d#example-ParseQuery" + rawUrl := "https://pkg.go.dev/net/url" + uri, err := url.Parse(rawUrl) + if err != nil { + return + } + query := uri.RawQuery + queryArr := strings.Split(query, "&") + v := url.Values{} + if len(queryArr) > 0 { + for _, q := range queryArr { + if arr := strings.Split(q, "="); len(arr) == 2 { + v.Add(arr[0], arr[1]) + } + } + } + v.Add("v1", "v1") + v.Add("v2", "v2") + uri.RawQuery = v.Encode() + uri.Path = path.Join(uri.Path, "/ccc/ddd") + fmt.Println(fmt.Sprintf("修改后的URL是:%s", uri.String())) + +} -- 2.22.0