Flutter автоматически печатает любой HTTP-запрос - PullRequest
0 голосов
/ 27 мая 2020

вкратце Я хочу print в моей консоли любой запрос Http, который запрашивает мое приложение, не помещая print command после каждого вызова, который я делаю, например:

скажем, у меня есть служба с http.Client.get и у меня есть еще 100 таких сервисов.

то, что я делаю сейчас, это я жду ответа в каждой службе, а затем я печатаю его вот так print('response is ' + response.body);.

чего я хочу добиться, так это того, что он будет автоматически распечатываться для меня, и я не буду писать print 100 раз после каждого запроса, который я делаю, любому хорошему архитектору вы бы порекомендовали следовать? * надеюсь, я хорошо прояснил идею.

Ответы [ 2 ]

0 голосов
/ 02 июня 2020

Я добился этого, сохранив все то же самое, но по-другому, сначала создайте свой собственный класс http, который будет выглядеть так:

    class MHttpClient {
  final http.Client client;
  MHttpClient(this.client);

  Future<http.Response> get({String path = ""}) async {
    final response =
        await client.get(BaseURL + path, headers: <String, String>{
      'Content-Type': 'application/json; charset=UTF-8',
      'x-api-key': ApiKey,
    });

    print('statusCode : ' + response.statusCode.toString());

    if (response.statusCode == 200) {
      print('response body : ${response.body}');
      try {
        json.decode(response.body);
        print('trying to decode  Respose Body result is : success');
      } catch (Ex) {
        print("Exepition with json decode : $Ex");
      }
    }
    return response;
  }
}

, а затем используйте свой собственный класс как обычный класс http

final MHttpClient client;
client.get(path: basicInfoPath);
0 голосов
/ 27 мая 2020

Вы можете попробовать пакет http_interceptor , который позволяет вам перехватывать все запросы и ответы из ваших HTTP-запросов (изменить заголовки, параметры и т. Д. c ..)

...