1
resposta

http_interceptors

Olá, não estou tendo a resposta no console do logger.i deste código:

import 'package:http_interceptor/http/interceptor_contract.dart';
import 'package:http_interceptor/models/request_data.dart';
import 'package:http_interceptor/models/response_data.dart';
import 'package:logger/logger.dart';

class LoggingInterceptor implements InterceptorContract {
  Logger logger = Logger();

  @override
  Future<RequestData> interceptRequest({required RequestData data}) async {
    logger.v('Requisição para ${data.baseUrl}\nCabeçalhos: ${data.headers}\nCorpo: ${data.body}');
    return data;
  }

  @override
  Future<ResponseData> interceptResponse({required ResponseData data}) async {
    if(data.statusCode ~/100 == 2){
      logger.i('Resposta de ${data.url}\nStatus da resposta: ${data.statusCode}\nCabeçalhos: ${data.headers}\nCorpo: ${data.body}');
    }else{
      logger.e('Resposta de ${data.url}\nStatus da resposta: ${data.statusCode}\nCabeçalhos: ${data.headers}\nCorpo: ${data.body}');
    }
    return data;
  }

}

O código está igual ao do Ricarth na aula mas não aparece nada no console, apenas a parte da requisição. Algo de errado? alguma atualização?

Por algum motivo o InterceptResponse não está funcionando corretamente. O resultado do erro sugerido pelo professor Ricarth também não funcionou.

1 resposta

Oi Thiago, tudo bem?

Desculpe a demora em retornar.

Pelo código que você compartilhou, parece que tudo está correto. No entanto, é possível que haja algum problema com a configuração do logger ou com a forma como você está chamando a classe LoggingInterceptor.

Uma possível solução seria verificar se você está importando corretamente o pacote do logger. Certifique-se de que você adicionou a dependência correta no seu arquivo pubspec.yaml e executou o comando "flutter pub get" para atualizar as dependências.

Além disso, verifique se você está chamando a classe LoggingInterceptor corretamente no seu código principal. Certifique-se de que você está passando uma instância de LoggingInterceptor para o interceptor do pacote http_interceptor.

Caso você já tenha verificado esses pontos e o problema persista, pode ser útil adicionar alguns logs de debug no seu código para entender onde exatamente está ocorrendo o problema. Por exemplo, você pode adicionar um log antes e depois de chamar o método interceptResponse para verificar se ele está sendo chamado corretamente.

Lembre-se de que essa é apenas uma sugestão de solução e pode não resolver o seu problema específico porque o ideal seria ver o seu código completo.

Um abraço e bons estudos.