post method

Future<String> post(
  1. String url, {
  2. Map<String, dynamic>? data,
  3. OnRequestStart? onStart,
  4. ApiError? error,
  5. bool? isTaokeApi,
  6. ValueChanged? otherDataHandle,
})

POST 请求

Implementation

Future<String> post(String url, {Map<String, dynamic>? data, OnRequestStart? onStart, ApiError? error, bool? isTaokeApi, ValueChanged<dynamic>? otherDataHandle}) async {
  var _dio = createInstance()!;
  if (_proxy.isNotEmpty) addProxy(_dio, _proxy);
  if (!kIsWeb) {
    (_dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (HttpClient client) {
      client.badCertificateCallback = (X509Certificate cert, String host, int port) => true;
      return client;
    };
  }

  _onStart?.call(_dio);
  onStart?.call(_dio);

  if (isTaokeApi ?? true) {
    url = tkApi + url;
  }

  try {
    final response = await _dio.post(url, data: data, options: Options(method: 'POST', followRedirects: false, contentType: 'application/json'));

    if (response.statusCode == 200 && response.data != null) {
      final _data = response.data is Map<String, dynamic> ? jsonEncode(response.data) : response.data;
      final result = ddTaokeResultFromJson(_data);
      if (result.state == 200) {
        if (result.data != null) {
          return result.data!;
        }
        return '';
      } else {
        errorHandle(error, result.state, result.message,data: result.data);
        return '';
      }
    }
  } on DioError catch (e) {
    if (e.response != null) {
      errorHandle(error, e.response!.statusCode??-1, e.response!.statusMessage??'请求失败');
    }
    errorHandle(error, 500, '${e.toString()}');
  }

  return '';
}