IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Simplificando a integração do LLM no .NET com o Microsoft.Extensions.AI

Curtis Chau
Curtis Chau
Updated: 23 de abril de 2026

Para desenvolvedores que precisam transitar entre scripts rápidos de ferramentas de linha de comando e código .NET robusto, a dificuldade geralmente reside em traduzir um comando cURL funcional em uma solicitação HTTP adequada em C#. Jacob Mellor preencheu essa lacuna com o CurlDotNet , uma biblioteca criada para trazer a familiaridade do cURL para o ecossistema .NET .

Ao combinar esta ferramenta com produtos da Iron Software, como o IronPDF ou o IronXL , você pode criar fluxos de trabalho robustos que buscam dados por meio de chamadas de API complexas e geram relatórios profissionais imediatamente. Neste artigo, veremos alguns exemplos de como essas ferramentas podem trabalhar juntas para levar seus projetos a um novo patamar.

O que é CurlDotNet?

CurlDotNet é uma implementação em C# .NET pura da ferramenta curl, padrão da indústria. Ao contrário de wrappers que dependem de bibliotecas nativas ou da libcurl, esta biblioteca oferece uma solução 100% gerenciada com suporte completo para Windows, Linux, macOS e outros sistemas operacionais. Isso garante o mesmo comportamento do cliente padrão, permitindo que você simplesmente cole uma cópia em bash de um comando da documentação da API diretamente no seu código.

Guia rápido e instalação

Para começar, basta executar o seguinte comando no diretório do seu projeto:

dotnet adicionar pacote curldotnet
Text

Isso instala o pacote CurlDotNet, dando-lhe acesso a receitas prontas para uso para lidar com solicitações web sem a sobrecarga da configuração do HttpClient.

Usando Comandos Curl do Curl-.NET

A biblioteca se destaca na análise de comandos com valores de string. Se você tiver uma string curl https funcional de uma página da API do GitHub ou de documentação interna, poderá executá-la diretamente.

using CurlDotNet;

// Simply copy-paste your shell command
var command = "curl -X GET https://api.github.com/users/jacob-mellor -H 'User-Agent: curl-dot-net'";
var result = await Curl.ExecuteAsync(command);
Console.WriteLine(result.Body);

Saída do Curl .NET do Código .NET

Saída para nosso primeiro comando Curl .NET

Para quem prefere uma abordagem estruturada, o construtor fluente oferece uma API clara para definir cabeçalhos, opções do curl e tokens de acesso.

var response = await Curl.GetAsync("https://api.github.com/users/ironsoftware")
    .WithHeader("Authorization", "Bearer YOUR_TOKEN")
    .WithHeader("X-API-Key", "12345")
    .ExecuteAsync();

Essa flexibilidade lida internamente com os mecanismos de handshake TLS, limitação de taxa e tratamento de erros, imitando o comportamento padrão do executável curl.

Integração com o Iron Software no .NET Framework

O verdadeiro poder é liberado quando você direciona a saída do CurlDotNet para as ferramentas do Iron Software . Como o CurlDotNet lida com a camada de transporte (buscando JSON, arquivos ou HTML), os produtos da Iron Software podem se concentrar no processamento desse conteúdo.

Cenário: Geração de relatórios em PDF a partir de dados de API

Imagine que você precisa baixar dados de usuários de um URL seguro e gerar um relatório em PDF. A API requer uma assinatura bash específica que é difícil de replicar com o HttpClient, mas fácil com um comando curl.

Passo 1: Buscar Dados com Curl-.NET

// Define the curl command string with all necessary headers (here we use an example test website)
string curlCmd = "curl https://www.w3.org/TR/html4/ -H 'X-API-Key: secure_key'";

// Execute the request
var result = await Curl.ExecuteAsync(curlCmd);

// Extract the content (assumed to be HTML for this scenario)
string htmlContent = result.Body;

Passo 2: Gere o PDF com o IronPDF

IronPDF é uma biblioteca poderosa projetada para renderizar HTML, CSS, JavaScript e imagens em documentos PDF de alta fidelidade. Oferece suporte completo aos padrões modernos da web e inclui recursos como adicionar cabeçalhos, rodapés e definir opções específicas de renderização.

using IronPdf;

// Instantiate the renderer
var renderer = new ChromePdfRenderer();

// Convert the fetched HTML data to PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the file to the output path
pdf.SaveAs("output.pdf");

Saída

Site de teste convertido para PDF usando CurlDotNet e IronPDF

Cenário: Exportando JSON para o Excel

Se seu aplicativo consome um feed JSON, você pode buscá-lo usando os recursos de teste do CurlDotNet e exportá-lo usando o IronXL.

Passo 1: Buscar Dados JSON com Curl-.NET

Utilizamos o Fluent Builder para gerar código .NET limpo e buscar o feed JSON:

string testUrl = "https://jsonplaceholder.typicode.com/users";

Console.WriteLine($"Executing HTTP request to fetch JSON from: {testUrl}");
// Replace the CurlDotNet fluent builder usage with the correct async method
var response = await Curl.GetAsync(testUrl); // Use Curl.GetAsync() for async HTTP GET

string jsonBody = response.Body;

Etapa 2: Carregar e exportar para o Excel usando o IronXL

IronXL é uma biblioteca .NET abrangente, projetada para lidar com todos os aspectos de leitura , gravação e manipulação de arquivos Excel (.xlsx, .xls, .csv). Fundamentalmente, ele faz isso sem a necessidade de instalar o Microsoft Office no servidor ou na máquina cliente, tornando-o ideal para ambientes Linux multiplataforma e de CI/CD. Os principais recursos incluem suporte completo para criação de gráficos, aplicação de fórmulas e estilização de células.

Com os dados JSON brutos agora em uma string, o IronXL pode ser usado para analisá-los e criar uma planilha.

var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
 var sheet = workbook.CreateWorkSheet("User Data");

 // 1. Deserialize the JSON string to a list of UserRecord objects
 Console.WriteLine("Deserializing JSON data...");
 var salesRecords = JsonConvert.DeserializeObject<List<UserRecord>>(jsonBody);

 // 2. Insert the data into the sheet using IronXL's SetCellValue method
 Console.WriteLine("Inserting data into Excel using IronXL...");

 // Write headers
 sheet.SetCellValue(0, 0, "id");
 sheet.SetCellValue(0, 1, "name");
 sheet.SetCellValue(0, 2, "username");
 sheet.SetCellValue(0, 3, "email");

 // Write data rows
 for (int i = 0; i < salesRecords.Count; i++)
 {
     var record = salesRecords[i];
     sheet.SetCellValue(i + 1, 0, record.id);
     sheet.SetCellValue(i + 1, 1, record.name);
     sheet.SetCellValue(i + 1, 2, record.username);
     sheet.SetCellValue(i + 1, 3, record.email);
 }

 // Save the Excel file
 string filePath = "UserReport.xlsx";
 workbook.SaveAs(filePath);

 Console.WriteLine($"\n Success! Excel report saved to: {Path.GetFullPath(filePath)}");

Arquivo Excel de saída

Arquivo Excel criado com CurlDotNet e IronXL

Por que essa combinação?

  1. Consistência Multiplataforma: Tanto os produtos CurlDotNet quanto da Iron Software suportam Windows, Linux e macOS. Isso é fundamental para pipelines de CI/CD executados em ambientes de tempo de execução como o Microsoft Azure ou o AWS Lambda.

  2. Geração de código: Os desenvolvedores geralmente recebem trechos de código gerados em formato bash ou shell. curl-.NET permite que você use esses trechos diretamente, enquanto a Iron Software lida com a parte pesada da manipulação de documentos.

  3. Sem dependências nativas: Como o CurlDotNet é uma implementação em C# puro, você evita problemas comuns associados à vinculação de bibliotecas C++ externas ou binários libcurl em diferentes versões do sistema operacional.

Conclusão

Jacob Mellor forneceu uma ferramenta vital para a comunidade .NET. Ao permitir que os desenvolvedores usem opções familiares do curl em aplicações .NET Framework e Core, CurlDotNet simplifica o processo de requisição HTTP. Ao ser combinado com o Iron Software, você pode criar um fluxo de trabalho perfeito: busque dados com a precisão do curl e processe-os com o poder do IronPDF ou do IronXL.

Caso encontre algum problema, não deixe de reportá-lo na página do GitHub para ajudar a melhorar o suporte a todos os usuários.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.