docs: public static <Resp extends HttpCmdResponse> Resp doGet(String ip, int port, HttpCmd<Resp> cmd) {
  
          Assert.hasText(cmd.getNodeIdentity(), "nodeIdentity can't be empty");
          Assert.hasText(cmd.getCommand(), "command can't be empty");
  
          StringBuilder sb = new StringBuilder();
          sb.append("http://").append(ip).append(":").append(port).append("/").append(cmd.getNodeIdentity()).append("/").append(cmd.getCommand());
  
          try {
              Map<String, String> params = cmd.getParams();
              if (CollectionUtils.isNotEmpty(params)) {
                  String prefix = "?";
                  for (Map.Entry<String, String> entry : params.entrySet()) {
                      sb.append(prefix);
                      prefix = "&";
                      sb.append(String.format("%s=%s", entry.getKey(),
                              URLEncoder.encode(entry.getValue(), "UTF-8")));
                  }
              }
              return cmd.doGet(sb.toString());
          } catch (Exception e) {
              throw new HttpCmdException(e);
          }
      }