diff --git a/tools/pd-ctl/pdctl/command/keyspace_command.go b/tools/pd-ctl/pdctl/command/keyspace_command.go index 4fd131a8ffe..ca2ffe2e078 100644 --- a/tools/pd-ctl/pdctl/command/keyspace_command.go +++ b/tools/pd-ctl/pdctl/command/keyspace_command.go @@ -19,6 +19,7 @@ import ( "encoding/json" "fmt" "net/http" + "net/url" "strings" "github.com/spf13/cobra" @@ -284,24 +285,32 @@ func listKeyspaceCommandFunc(cmd *cobra.Command, args []string) { return } - url := keyspacePrefix + u := keyspacePrefix + query := make(url.Values) limit, err := cmd.Flags().GetString(nmLimit) if err != nil { cmd.PrintErrln("Failed to parse flag: ", err) return } if limit != "" { - url += fmt.Sprintf("?limit=%s", limit) + query.Set("limit", limit) } + pageToken, err := cmd.Flags().GetString(nmPageToken) if err != nil { cmd.PrintErrln("Failed to parse flag: ", err) return } if pageToken != "" { - url += fmt.Sprintf("&page_token=%s", pageToken) + query.Set("page_token", pageToken) } - resp, err := doRequest(cmd, url, http.MethodGet, http.Header{}) + + if len(query) > 0 { + u += "?" + u += query.Encode() + } + + resp, err := doRequest(cmd, u, http.MethodGet, http.Header{}) if err != nil { cmd.PrintErrln("Failed to list keyspace: ", err) return