1
resposta

Localhost com emulador

Não estou conseguindo acessar minha api através do flutter com meu emulador, pois minha api está em uma porta diferente. Como eu altero a porta do emulador ? para ele estar acessando a mesma??

http://localhost:5051 minha api

Connecting to VM Service at ws://127.0.0.1:51220/wWV57ivuozk=/ws Meu emulador

Preciso que o emulador androidstudio acesse meu local host da minha máquina

1 resposta

Olá, Victor!

Entendo sua situação e acredito que posso te ajudar com isso. Parece que você está tentando acessar sua API local do Flutter em seu emulador Android, mas está tendo problemas por causa da diferença de portas.

No entanto, você não precisa alterar a porta do emulador. O que você precisa fazer é usar um endereço IP especial que o Android Emulator reconhece como o endereço IP do host de loopback (localhost).

Em vez de usar http://localhost:5051 para acessar sua API, você deve usar http://10.0.2.2:5051.

O endereço 10.0.2.2 é o endereço IP especial que o Android Emulator usa para se referir ao host de loopback. Portanto, se você tentar acessar sua API usando esse endereço IP, o Android Emulator será capaz de se conectar à sua API, mesmo que esteja em uma porta diferente.

Aqui está um exemplo de como você pode fazer isso em seu código Flutter:

import 'package:http/http.dart' as http;

void fetchData() async {
  final response = await http.get(Uri.parse('http://10.0.2.2:5051'));

  if (response.statusCode == 200) {
    // Se o servidor retornar uma resposta OK, analise o JSON.
    print('Data fetched successfully');
  } else {
    // Se essa resposta foi um erro, lance uma exceção.
    throw Exception('Failed to load data');
  }
}

Espero ter ajudado e bons estudos!