request<T> function

Future<void> request<T>(
  1. Future<Response> request(), {
  2. dynamic onSuccess(
    1. T?
    )?,
  3. dynamic onFail(
    1. String?,
    2. String?
    )?,
})

请求数据,,返回data数据为原始数据类型

    request<String>(
      () => ApiRepository.get.nearbyMaxsShop(1, 0, 0),
      onSuccess: <String>(data) {},
    );

    request<bool>(
      () => ApiRepository.get.nearbyMaxsShop(1, 0, 0),
      onSuccess: <bool>(data) {},
    );

Implementation

Future<void> request<T>(Future<Response> Function() request,
    {Function(T?)? onSuccess, Function(String?, String?)? onFail}) async {
  try {
    var response = await request();
    if (response.statusCode == HttpStatus.ok) {
      var json = response.data;
      var result = ResultDto<T>.fromJsonT(json);
      if (result.isSuccess()) {
        onSuccess?.call(result.data);
      } else {
        throw BizException(code: result.errorCode, message: result.message);
      }
    } else {
      HttpPlatform.get.throwHandler?.handleStatusCode(response.statusCode);
    }
  } on Exception catch (ex) {
    HttpPlatform.get.throwHandler?.handleError(ex, onFail: onFail);
  }
}