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

Erro http

Se esse erro é pelo flutter não aceitar mais conexão http (somente https) como vi falando por aqui no fórum, como faz para arrumar isso e prosseguir com o curso? Muito dificil fazer curso desatualizado... alguma luz para não ficar parada dias esperando uma solçução?

E/flutter ( 2916): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: Invalid argument(s): No host specified in URI http:192.168.0.15:8080/transactions E/flutter ( 2916): #0 HttpClient.openUrl (dart:http/httpimpl.dart:2425:9) E/flutter ( 2916): #1 HttpClient.openUrl (dart:http/http_impl.dart:2341:7) E/flutter ( 2916): #2 IOClient.send (package:http/src/io_client.dart:30:38) E/flutter ( 2916): #3 BaseClient.sendUnstreamed (package:http/src/baseclient.dart:93:38) E/flutter ( 2916): #4 BaseClient.get (package:http/src/base_client.dart:27:7) E/flutter ( 2916): #5 get. (package:http/http.dart:46:36) E/flutter ( 2916): #6 withClient (package:http/http.dart:164:20) E/flutter ( 2916): #7 get (package:http/http.dart:46:5) E/flutter ( 2916): #8 findAll (package:bytebank/http/webclient.dart:5:35) E/flutter ( 2916): #9 main (package:bytebank/main.dart:8:3) E/flutter ( 2916): #10 _runMainZoned.. (dart:ui/hooks.dart:140:25) E/flutter ( 2916): #11 _rootRun (dart:async/zone.dart:1354:13) E/flutter ( 2916): #12 _CustomZone.run (dart:async/zone.dart:1258:19) E/flutter ( 2916): #13 _runZoned (dart:async/zone.dart:1788:10) E/flutter ( 2916): #14 runZonedGuarded (dart:async/zone.dart:1776:12) E/flutter ( 2916): #15 _runMainZoned. (dart:ui/hooks.dart:133:5) E/flutter ( 2916): #16 _delayEntrypointInvocation. (dart:isolate-patch/isolatepatch.dart:283:19) E/flutter ( 2916): #17 RawReceivePortImpl.handleMessage (dart:isolate-patch/isolate_patch.dart:184:12) E/flutter ( 2916):

2 respostas
solução!

Instalei ngrok e consegui resolver. Para quem ainda não conseguiu, baixe o ngrok na internet. Descompacte o arquivo zip e ele abrirá uma tela de comando. Ali você pode digita ngrok http 8080. Esse comando vai fazer com ele gere uma url http e ou https. Copie a url https e faça da seguinte forma no IntelliJ:

void findAll() async {

final url = Uri.https( 'coloque a URL gerada que é um número, letras e traços-sem o http.ngrok.io', 'transactions', );

final response = await get(url); print(response.body); }

Vá para o terminal e digite: flutter clean

Depois: flutter pub get

Ajudou bastante a questão do ngrok, porém foi preciso aplicar mais uma solução de https://stackoverflow.com/questions/65630743/how-to-solve-flutter-web-api-cors-error-only-with-dart-code, visto que havia problema de CORS também comigo, no caso para resolver isso, basta seguir os seguintes procedimentos:

1- Vá para flutter\bin\cache e remova um arquivo chamado: flutter_tools.stamp 2- Vá para flutter\packages\flutter_tools\lib\src\web e abra o arquivo chrome.dart. 3- Encontre '--disable-extensions' 4- Adicione '--disable-web-security' logo depois.

para usuários com flutter instalado via snap o caminho da pasta flutter é: "~/snap/flutter/common/flutter/", para outras distros não sei onde ficaria instalado o flutter, mas foi essa a solução que encontrei.

meu código também ficou assim:

void findAll() async {
  Client client = InterceptedClient.build(interceptors: [LoggingInterceptor()]);

  final Response response = await client
      .get(Uri.parse('http://57e0-seu-ip-publico.ngrok.io/transactions'));
  debugPrint(response.body);
}