1
resposta

[Projeto] Exercício 1 - Crie um Gist e adicione as receitas

Exercício 1 - Crie um Gist e adicione as receitas

testei o programa sem internet pra ver o comportamento e descobri um erro por isso fiz algumas mudanças no código

arquivo: main.dart

import 'package:receitas_gist_json/dados_receitas.dart';

void main(List<String> arguments) {

  receitasJson();

}

arquivo: dados_receitas.dart

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

receitasJson() async {
  String url =
      'https://gist.githubusercontent.com/charlesdevoliveira/29869f85a9f6c1e129c120fcffbfdfeb/raw/549f06e164551ec247cdb1309003a09bdbd13fd8/recipes.json';

  try {
    http.Response response = await http.get(Uri.parse(url));

      if (response.statusCode == 200) {
        print(response.body);
      } else {
        print('Não foi possível obter os dados: ${response.statusCode}');
      }
    } catch (exeption) {
    print('Erro ao acessar internet: ${exeption.toString()}');
  }
}
1 resposta

Olá, Charles. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ótimo como você lidou com a requisição HTTP e tratou possíveis erros, principalmente ao verificar o status da resposta. Isso garante que seu programa se comporte de maneira mais robusta, mesmo quando há problemas com a conexão.

Uma dica para otimizar o seu código seria utilizar o método http.get de maneira assíncrona de forma mais segura, com um bloco try-catch aprimorado. Aqui vai uma curiosidade: o método http.get pode ser melhorado com o uso do timeout, que define um tempo máximo para a requisição. Veja um exemplo:


http.Response response = await http.get(Uri.parse(url)).timeout(Duration(seconds: 10));

Esse código garante que, se a requisição demorar mais de 10 segundos, o código vai lançar um erro, evitando que o aplicativo fique travado esperando por uma resposta.

  Alura   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!