code: public CreateRouteResponse createRoute(CreateRouteRequest request)
              throws BceClientException {
          checkNotNull(request, "request should not be null.");
          if (Strings.isNullOrEmpty(request.getClientToken())) {
              request.setClientToken(this.generateClientToken());
          }
          checkStringNotEmpty(request.getRouteTableId(), "routeTableId should not be empty");
          checkStringNotEmpty(request.getSourceAddress(), "source address should not be empty");
          checkStringNotEmpty(request.getDestinationAddress(), "destination address should not be empty");
          checkStringNotEmpty(request.getNexthopType(), "nexthop type  should not be empty");
          checkStringNotEmpty(request.getDescription(), "description should not be empty");
          InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST, ROUTE_PREFIX, ROUTE_RULE);
          internalRequest.addParameter("clientToken", request.getClientToken());
          fillPayload(internalRequest,request);
          return invokeHttpClient(internalRequest, CreateRouteResponse.class);
      }
docs: Create a route with the specified options.
  You must fill the field of clientToken,which is especially for keeping idempotent.
  <p/>
  
  @param request The request containing all options for creating subnet.
  @return List of subnetId newly created
  @throws BceClientException