docs: public MessageStatListResult getMessageStatistic(String timeUnit, String start, int duration)
              throws APIConnectionException, APIRequestException {
          Preconditions.checkArgument(verifyDateFormat(timeUnit, start), "Time format error, please check your argument");
          if (timeUnit.equals("HOUR")) {
              Preconditions.checkArgument(0 <= duration && duration <= 24, "time unit is HOUR, duration must between 0 and 24 ");
          } else if (timeUnit.equals("DAY")) {
              Preconditions.checkArgument(0 <= duration && duration <= 60, "time unit is DAY, duration must between 0 and 60");
          } else if (timeUnit.equals("MONTH")) {
              Preconditions.checkArgument(0 <= duration && duration <= 2, "time unit is MONTH, duration must between 0 and 2");
          } else throw new IllegalArgumentException("Time unit error");
          String url = mBaseReportPath + mV2StatisticPath + "/messages?time_unit=" + timeUnit + "&start=" + start + "&duration=" + duration;
          ResponseWrapper responseWrapper = _httpClient.sendGet(url);
          return MessageStatListResult.fromResponse(responseWrapper, MessageStatListResult.class);
      }