Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Método HttpClientWithInterceptor não existe

Olá!

Estava fazendo os exercícios solicitados, e enquanto eu estava escrevendo o código da aplicação no meu código o método HttpClientWithInterceptor.build não existe, eu não consigo importa - lo , observando a documentação no exemplo é utilizado o método InterceptedClient.build ao utiliza-lo a aplicação roda sem problemas, mas não esta sendo imprimido no console as informações do interceptor

Segue o meu código

import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:http_interceptor/http_interceptor.dart';

class LoggingInterceptor implements InterceptorContract {
  @override
  Future<RequestData> interceptRequest({required RequestData data}) async {
    debugPrint('Request');
    debugPrint('url: ${data.url}');
    debugPrint('headers: ${data.headers}');
    debugPrint('body: ${data.body}');
    return data;
  }

  @override
  Future<ResponseData> interceptResponse({required ResponseData data}) async {
    debugPrint('Response');
    debugPrint('status code: ${data.statusCode}');
    debugPrint('headers: ${data.headers}');
    debugPrint('body: ${data.body}');
    return data;
  }
}

void findAll() async {
  final Client client = InterceptedClient.build(
    interceptors: [LoggingInterceptor()],
  );
  final Response response =
      await get(Uri.parse('http://192.168.1.66:8080/transactions'));
  debugPrint(response.body);
}
2 respostas
solução!

Olá Luis, no meu também não imprimia, além de trocar o HttpClientWithInterceptor pelo InterceptedClient, eu precisei fazer o seguinte, onde você colocou Uri.parse, eu coloquei Uri.http, passando o endereço ip da minha máquina como argumento, e o 'transactions' como segundo argumento, tal como ficou da seguinte maneira:

void findAll() async {
          Client client = InterceptedClient.build(
                interceptors: [LoggingInterceptor()]
        );
          final Response response = 
                await client.get(Uri.http('192.168.0.122:8080', 'transactions'));
          print(response.body);
}

Entendi!

Muito obrigado, funcionou agora.