vkdart

Форк
0
/
http_client.dart 
32 строки · 1.0 Кб
1
// ignore_for_file: avoid_classes_with_only_static_members
2

3
import 'dart:convert';
4

5
import 'package:http/http.dart' as http;
6

7
/// Http client.
8
class HttpClient {
9
  static const _headers = {'Content-Type': 'application/x-www-form-urlencoded'};
10

11
  static Future<dynamic> _responseParsedBody(http.Response response) async {
12
    final jsonBody = jsonDecode(utf8.decode(response.bodyBytes));
13

14
    return jsonBody;
15
  }
16

17
  static Object _customValue(Object value) =>
18
      value is List || value is Map ? jsonEncode(value) : value;
19

20
  static String? _transformBody(Map<String, dynamic>? body) =>
21
      body?.entries.map((e) => '${e.key}=${_customValue(e.value)}').join('&');
22

23
  /// Create a post request.
24
  static Future<dynamic> httpPost(String url,
25
          {Map<String, dynamic>? body, Map<String, dynamic>? headers}) =>
26
      http
27
          .post(Uri.parse(url),
28
              body: _transformBody(body), headers: {...?headers, ..._headers})
29
          .then(_responseParsedBody)
30
          // ignore: unnecessary_lambdas
31
          .catchError((error) => Future.error(error));
32
}
33

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.