Guia completo do Flurl para C# (.NET) com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Flurl para C# (.NET): guia completo com exemplos

Flurl é uma biblioteca moderna e elegante para .NET que combina um construtor de URL fluente com um cliente HTTP. Ela foi criada para tornar o trabalho com requisições HTTP extremamente simples, legível e prático. Em vez de código verboso com HttpClient, UriBuilder e várias concatenações de strings, o Flurl oferece uma sintaxe concisa e expressiva, semelhante às cadeias de métodos do LINQ.

Por que usar Flurl? O principal problema do HttpClient padrão é a verbosidade. Para enviar uma simples requisição GET com parâmetros e cabeçalhos, você precisa escrever de 10 a 15 linhas de código. O Flurl reduz isso para 2 a 3 linhas, tornando o código autodocumentado. Além disso, o Flurl resolve o problema de construção segura de URLs: ele codifica automaticamente os parâmetros, lida com caminhos e query strings, prevenindo erros relacionados à codificação incorreta de caracteres.

A biblioteca é ideal para qualquer cenário que exija interação com APIs REST: desde aplicativos móveis simples até sistemas corporativos complexos. O Flurl suporta todos os métodos HTTP principais, trabalho com JSON, upload de arquivos, timeouts, tentativas de repetição e muito mais. Ele é totalmente assíncrono e compatível com .NET Standard 2.0+, permitindo seu uso em .NET Framework, .NET Core e .NET 5/6/7/8.

Instalação

O Flurl pode ser instalado via NuGet Package Manager. Para trabalhar com requisições HTTP, você precisa do pacote Flurl.Http, que já inclui o Flurl (construtor de URL).

Via .NET CLI:

dotnet add package Flurl.Http

Via Package Manager Console:

Install-Package Flurl.Http

Via Visual Studio: Clique com o botão direito no projeto → Manage NuGet Packages → pesquise "Flurl.Http" → Install.

Se você precisar apenas do construtor de URL sem o cliente HTTP, pode instalar:

dotnet add package Flurl

Início rápido

Um exemplo mínimo funcional — obter dados de uma API pública e exibir no console:

using Flurl.Http;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Requisição GET para uma API JSON
        var response = await "https://jsonplaceholder.typicode.com/posts/1"
            .GetJsonAsync<dynamic>();

        Console.WriteLine($"Título: {response.title}");
        Console.WriteLine($"Corpo: {response.body}");
    }
}

Este código faz uma requisição GET, desserializa automaticamente a resposta JSON em um objeto dinâmico e exibe os campos. Observe: o Flurl permite chamar métodos diretamente em uma string de URL — esse é o estilo "fluente".

Métodos e classes principais

1. Url.Combine() — combinação segura de URLs

Assinatura: public static string Combine(params string[] parts)

O que faz: Combina várias partes de uma URL, adicionando/removendo barras extras automaticamente. Previne a duplicação de barras.

using Flurl;

string fullUrl = Url.Combine("https://api.exemplo.com", "/v1/", "usuarios", "/123");
Console.WriteLine(fullUrl); // https://api.exemplo.com/v1/usuarios/123

2. Url.SetQueryParams() — adição fluente de parâmetros

Assinatura: public static string SetQueryParams(this string url, object values)

O que faz: Adiciona parâmetros de query a uma URL a partir de um objeto anônimo ou dicionário. Codifica os valores automaticamente.

using Flurl;

string url = "https://api.exemplo.com/busca"
    .SetQueryParams(new { q = "olá mundo", pagina = 1, limite = 10 });

Console.WriteLine(url); 
// https://api.exemplo.com/busca?q=ol%C3%A1%20mundo&pagina=1&limite=10

Recommendations