postApiRequest method

Future<Map<String, dynamic>?> postApiRequest({
  1. required Uri uri,
  2. required Map<String, String> headers,
  3. Map<String, dynamic>? body,
})

Implementation

Future<Map<String, dynamic>?> postApiRequest({
  required Uri uri,
  required Map<String, String> headers,
  Map<String, dynamic>? body,
}) async {
  try {
    final response = await http.post(
      uri,
      headers: headers,
      body: convert.jsonEncode(body),
    );
    if (response.statusCode == 200) {
      var jsonResponse =
          convert.jsonDecode(response.body) as Map<String, dynamic>;
      return jsonResponse;
    } else {
      throw OpensubtitlesApiException(
        'API request failed',
        statusCode: response.statusCode,
        data: response.body,
      );
    }
  } catch (e) {
    if (e is OpensubtitlesApiException) rethrow;
    throw OpensubtitlesApiException('Network error: ${e.toString()}');
  }
}