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!