2
respostas

ERRO: Unhandled Exception: Connection closed before full header was received

Olá pessoal!

estou recebendo o erro abaixo quando faço o get, codigo:

import 'package:http/http.dart';

void getSumarizeByAllocation() async {
  Uri? url = Uri.tryParse("http://192.168.64.1:32772/Dashboard/SumarizeByAllocations");
  final Response response = await get(url!);
  print(response.body);
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAlguém já passou por isto?

Muito obrigado!

2 respostas

Olá Sidnei,

Esse erro geralmente ocorre quando a conexão é fechada antes de receber o cabeçalho completo. Isso pode ser causado por vários motivos, como problemas de rede, configurações de firewall ou problemas com o servidor.

Uma solução possível é adicionar o parâmetro headers no seu método get, assim:

import 'package:http/http.dart';

void getSumarizeByAllocation() async {
  Uri? url = Uri.tryParse("http://192.168.64.1:32772/Dashboard/SumarizeByAllocations");
  final Response response = await get(url!, headers: {"Connection": "close"});
  print(response.body);
}

Esse parâmetro informa ao servidor que a conexão deve ser fechada após a resposta ser enviada.

Espero ter ajudado e bons estudos!

Muito obrigado pelo retorno Matheus!

baseado na sua resposta modifiquei minha chamada para a seguinte:

final Response response = await get(url!, headers: {'Content-Type': 'application/json'});

mudou o problema passando para o problema de handshake:

alterei o main da seguinte maneira:

import 'dart:io';

class MyHttpOverrides extends HttpOverrides{
  @override
  HttpClient createHttpClient(SecurityContext? context){
    print("Testando ...");
    return super.createHttpClient(context)
      ..badCertificateCallback = (X509Certificate cert, String host, int port)=> true;
  }
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

  HttpOverrides.global = MyHttpOverrides();
  runApp(const KFinanceApp());
}

E agora funcionou, muito obrigado!