Baixando uma página da web

Dart:
Baixando uma página da web

Como fazer:

Dart fornece o pacote http, uma biblioteca de terceiros popular para realizar requisições HTTP. Aqui está um exemplo básico de como usá-lo para baixar uma página web:

Primeiro, adicione o pacote http ao seu pubspec.yaml:

dependencies:
  http: ^0.13.3

Depois, importe o pacote e use-o para buscar o conteúdo de uma página web:

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

Future<void> main() async {
  var url = Uri.parse('http://example.com');
  var resposta = await http.get(url);
  if (resposta.statusCode == 200) {
    print('Página baixada:');
    print(resposta.body);
  } else {
    print('Requisição falhou com status: ${resposta.statusCode}.');
  }
}

Saída de exemplo (isso variará com base no conteúdo da página web):

Página baixada:
<!doctype html>
<html>
<head>
    <title>Exemplo de Domínio</title>
...
</html>

Para cenários mais complexos, como lidar com cookies ou configurar cabeçalhos de user-agent, você usaria o mesmo pacote http, mas com configurações adicionais para a sua requisição:

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

Future<void> main() async {
  var cabeçalhos = {
    'User-Agent': 'SeuUserAgentCustomizado/1.0',
    'Cookie': 'nome=valor; nome2=valor2',
  };
  var url = Uri.parse('http://example.com');
  var resposta = await http.get(url, cabeçalhos: cabeçalhos);

  if (resposta.statusCode == 200) {
    print('Página baixada com cabeçalhos personalizados:');
    print(resposta.body);
  } else {
    print('Requisição falhou com status: ${resposta.statusCode}.');
  }
}

Usar cabeçalhos como estes pode imitar requisições de navegador mais precisamente, o que é particularmente útil ao lidar com sites que têm requisitos específicos ou proteções contra raspagem.