code: protected InternalRequest createGeneralRequest(String pathPrefix, AbstractBceRequest bceRequest,
                                                     HttpMethodName httpMethod, String... pathVariables) {
          List<String> pathComponents = new ArrayList<String>();
          assertStringNotNullOrEmpty(pathPrefix, "String resourceKey should not be null or empty");
          pathComponents.add(pathPrefix);
          if (pathVariables != null) {
              Collections.addAll(pathComponents, pathVariables);
          }
  
          // get a InternalRequest instance
          InternalRequest request =
                  new InternalRequest(httpMethod, HttpUtils.appendUri(this.getEndpoint(),
                          pathComponents.toArray(new String[pathComponents.size()])));
          request.setCredentials(bceRequest.getRequestCredentials());
  
          // set headersToSign
          SignOptions options = SignOptions.DEFAULT;
          Set<String> headersToSign = new HashSet<String>();
          // headersToSign.add("content-type");
          headersToSign.add("host");
          headersToSign.add("x-bce-date");
          headersToSign.add("x-bce-request-id");
          options.setHeadersToSign(headersToSign);
  
          new BceV1Signer().sign(request, request.getCredentials(), options);
  
          return request;
      }
docs: create general request: by pathPrefix(not contains v1 URL_PREFIX)
  pathPrefix combined with pathVariables will generate new path
  For example:/pathPrefix/../pathVariable1/pathVariable2
  
  @param pathPrefix    resourcePath
  @param bceRequest    bceRequest
  @param httpMethod    method: post、get etc.
  @param pathVariables variables
  
  @return send request message