Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema de acesso ao servidor local HTTP

Estou enfrentando um problema na função findAll() do webclient.dart.

Primeiramente tentei fazer igual a vídeo aula mas a IDE retorna um erro, pois a função get do http não pode ser mais preenchida apenas com a string.

Pesquisando um pouco aqui no fórum e no próprio Cookbook, verifiquei que deve-se utilizar os parametros Uri.http ou Uri.https

Quando coloco Uri.http me retorna uma mensagem que não é mais permitido no Flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: Bad state: Insecure HTTP is not allowed by platform:

Quando coloco Uri.https funciona o código mas não retorna dados: I/flutter (10076): url: https://10.0.0.4:8080/transactions I/flutter (10076): headers: {} I/flutter (10076): body:

Tentei utilizar o ngrok sem sucesso, segue a função atual:

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

Verifiquei na documentação do Flutter uma possível solução adicionando no $project_path\android\app\src\debug\AndroidManifest.xml: <application android:usesCleartextTraffic="true"/>

segue o link: https://flutter.dev/docs/release/breaking-changes/network-policy-ios-android

Alguma sugestão sem que seja necessário alterar o Android Manifest pessoal?

1 resposta
solução!

Consegui resolver com o ngrok.

Esse vídeo me ajudou muito: https://cursos.alura.com.br/como-compartilhar-seu-localhost-de-forma-simplificada-com-o-ngrok-c7

Após fazer o download e autenticar o ngrok, o comando foi: ngrok http 8080

Depois foi só copiar a url https e colar no webclient.dart.

Ficou assim a findAll() :

void findAll() async {
  final Client client = HttpClientWithInterceptor.build(
    interceptors: [LoggingInterceptor()],
  );
  final Response response =
      await client.get(Uri.https('fdaf39aef708.ngrok.io', 'transactions'));
  print(response.body);
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software