From 00cf7e46dd3685c6daf3f7b3fc8be3df1922effc Mon Sep 17 00:00:00 2001 From: fangyincheng <fangyincheng@sina.com> Date: Sun, 25 Oct 2020 03:53:16 +0800 Subject: [PATCH] fixed url encode --- registry/base_registry.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/registry/base_registry.go b/registry/base_registry.go index ad1a3b617..e7d38df06 100644 --- a/registry/base_registry.go +++ b/registry/base_registry.go @@ -314,7 +314,7 @@ func (r *BaseRegistry) providerRegistry(c common.URL, params url.Values, f creat // Dubbo java consumer to start looking for the provider url,because the category does not match, // the provider will not find, causing the consumer can not start, so we use consumers. - if len(c.Methods) == 0 { + if len(c.Methods) != 0 { params.Add(constant.METHODS_KEY, strings.Join(c.Methods, ",")) } logger.Debugf("provider url params:%#v", params) @@ -326,7 +326,8 @@ func (r *BaseRegistry) providerRegistry(c common.URL, params url.Values, f creat } host += ":" + c.Port - rawURL = fmt.Sprintf("%s://%s%s?%s", c.Protocol, host, c.Path, params.Encode()) + s, _ := url.QueryUnescape(params.Encode()) + rawURL = fmt.Sprintf("%s://%s%s?%s", c.Protocol, host, c.Path, s) // Print your own registration service providers. dubboPath = fmt.Sprintf("/dubbo/%s/%s", r.service(c), (common.RoleType(common.PROVIDER)).String()) logger.Debugf("provider path:%s, url:%s", dubboPath, rawURL) @@ -361,7 +362,8 @@ func (r *BaseRegistry) consumerRegistry(c common.URL, params url.Values, f creat } params.Add("protocol", c.Protocol) - rawURL = fmt.Sprintf("consumer://%s%s?%s", localIP, c.Path, params.Encode()) + s, _ := url.QueryUnescape(params.Encode()) + rawURL = fmt.Sprintf("consumer://%s%s?%s", localIP, c.Path, s) dubboPath = fmt.Sprintf("/dubbo/%s/%s", r.service(c), (common.RoleType(common.CONSUMER)).String()) logger.Debugf("consumer path:%s, url:%s", dubboPath, rawURL) -- GitLab