Skip to content

Commit 5af342a

Browse files
authored
fix(net/ghttp): json omitempty takes no effect in BuildParams, which is not compatible with old version (#4041)
1 parent 5c45d35 commit 5af342a

File tree

5 files changed

+27
-5
lines changed

5 files changed

+27
-5
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ example/log
1818
go.work
1919
go.work.sum
2020
!cmd/gf/go.work
21+
.windsurfrules
2122

2223
# Ignore for docs
2324
node_modules

contrib/registry/consul/go.mod

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/armon/go-metrics v0.4.1 // indirect
1313
github.com/clbanning/mxj/v2 v2.7.0 // indirect
1414
github.com/emirpasic/gods v1.18.1 // indirect
15-
github.com/fatih/color v1.17.0 // indirect
15+
github.com/fatih/color v1.18.0 // indirect
1616
github.com/fsnotify/fsnotify v1.7.0 // indirect
1717
github.com/go-logr/logr v1.4.2 // indirect
1818
github.com/go-logr/stdr v1.2.2 // indirect
@@ -24,7 +24,7 @@ require (
2424
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
2525
github.com/hashicorp/golang-lru v0.5.4 // indirect
2626
github.com/hashicorp/serf v0.10.1 // indirect
27-
github.com/magiconair/properties v1.8.7 // indirect
27+
github.com/magiconair/properties v1.8.9 // indirect
2828
github.com/mattn/go-colorable v0.1.13 // indirect
2929
github.com/mattn/go-isatty v0.0.20 // indirect
3030
github.com/mitchellh/go-homedir v1.1.0 // indirect
@@ -34,8 +34,8 @@ require (
3434
go.opentelemetry.io/otel/sdk v1.24.0 // indirect
3535
go.opentelemetry.io/otel/trace v1.24.0 // indirect
3636
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
37-
golang.org/x/sys v0.22.0 // indirect
38-
golang.org/x/text v0.16.0 // indirect
37+
golang.org/x/sys v0.28.0 // indirect
38+
golang.org/x/text v0.21.0 // indirect
3939
gopkg.in/yaml.v3 v3.0.1 // indirect
4040
)
4141

contrib/registry/consul/go.sum

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL
3030
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
3131
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
3232
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
33+
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
3334
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
3435
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
3536
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
@@ -105,6 +106,7 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
105106
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
106107
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
107108
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
109+
github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
108110
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
109111
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
110112
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
@@ -222,13 +224,15 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
222224
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
223225
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
224226
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
227+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
225228
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
226229
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
227230
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
228231
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
229232
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
230233
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
231234
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
235+
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
232236
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
233237
golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
234238
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

internal/httputil/httputils.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ func BuildParams(params interface{}, noUrlEncode ...bool) (encodedParamStr strin
3838
}
3939
}
4040
// Else converts it to map and does the url encoding.
41-
m, urlEncode := gconv.Map(params), true
41+
m, urlEncode := gconv.Map(params, gconv.MapOption{
42+
OmitEmpty: true,
43+
}), true
4244
if len(m) == 0 {
4345
return gconv.String(params)
4446
}

internal/httputil/httputils_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,18 @@ func TestBuildParams(t *testing.T) {
3636
t.Assert(gstr.Contains(params, "b"), false)
3737
})
3838
}
39+
40+
// https://github.com/gogf/gf/issues/4023
41+
func TestIssue4023(t *testing.T) {
42+
gtest.C(t, func(t *gtest.T) {
43+
type HttpGetRequest struct {
44+
Key1 string `json:"key1"`
45+
Key2 string `json:"key2,omitempty"`
46+
}
47+
r := &HttpGetRequest{
48+
Key1: "value1",
49+
}
50+
params := httputil.BuildParams(r)
51+
t.Assert(params, "key1=value1")
52+
})
53+
}

0 commit comments

Comments
 (0)