Quem tiver assim como eu, com problema com código segue uma solução. Essa vai servir pra quem nem sequer conseguiu importar o Interceptor direito. Aquele problema que pede pra implementar 4 métodos que nem sequer tem na tela do professor. Se vc está tendo esse problema provavelmente tais usando dependências mais atuais do que a do curso. Se vc assim como eu não sabe consertar isso pra ficar igual segue a solução.
Já aviso que não ficará igual, apenas bem parecido.
o arquivo "http_interceptor.dart" ficou assim
import 'dart:async';
import 'package:http/http.dart';
import 'package:http_interceptor/models/interceptor_contract.dart';
import 'package:logger/logger.dart';
class LoggingInterceptor implements InterceptorContract{
Logger logger = Logger();
@override
Future<BaseRequest> interceptRequest({required BaseRequest request}) async{
logger.i("Requisição para: ${request.url}\nCabeçalhos: ${request.headers}\nMétodo: ${request.method}");
return request;
}
@override
Future<BaseResponse> interceptResponse({required BaseResponse response}) async{
logger.i("Response Code: ${response.statusCode}\nRequisição feita para: ${response.request?.url}\nCabeçarios: ${response.request?.headers}\nMétodo: ${response.request?.method}");
return response;
}
@override
Future<bool> shouldInterceptRequest() async{
return true;
}
@override
Future<bool> shouldInterceptResponse() async {
return true;
}
}
o arquivo "journal_service.dart" assim (ATENTAR PRA POR SEU ENDEREÇO DE IP ALI)
import 'package:http/http.dart' as http;
import 'package:http_interceptor/http/intercepted_client.dart';
import 'package:meu_diario/services/http_interceptors.dart';
class JournalService{
static const String url = "http://192.168.100.8:3000/";
static const String resource = "learnhttp/";
http.Client client = InterceptedClient.build(interceptors: [LoggingInterceptor()]);
String getUrl(){
return "$url$resource";
}
void register(String content) async{
await client.post(Uri.parse(getUrl()),body: {"content": content});
}
Future<String> get() async{
http.Response response = await client.get(Uri.parse(getUrl()));
return response.body;
}
}
Assim vai aparecer os logs que aparece pro professor com algumas diferenças pois o "data" que aqui ficou com nome de request e reesponse não possui todos os métodos apresentado no curso.
Não resolve, mas já serve pra vc seguir em frente
Não esqueça de baixar as dependerias
flutter pub add logger
flutter pub add http_interceptor
Ainda é necessário usar json-server na versão 0.17.4
https://cursos.alura.com.br/forum/topico-bug-nao-funciona-funcao-register-426721 (Olhar a resposta de Matheus)
mas basicamente é usar os comandos
npm unsintall -g json-server
npm install -g json-server@0.17.4
pra criar o servidor use a sintaxe
json-server -H seu.ip.aqui -p 3000 db.json