cURL → HttpClient

Convert any curl command into idiomatic C# HttpClient code

Recommended. Pooled clients, no socket exhaustion.

cURL Input

180 chars

C# Output

using System.Net.Http.Headers;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System;

// Add to Program.cs (DI registration):
// builder.Services.AddHttpClient("api", c =>
// {
//     c.BaseAddress = new Uri("https://api.example.com");
// });

public static async Task<string> PostUsersAsync(IHttpClientFactory httpClientFactory, CancellationToken cancellationToken = default)
{
    var client = httpClientFactory.CreateClient("api");

    using var request = new HttpRequestMessage(HttpMethod.Post, "/users");
    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "your-token");
    // Content-Type is set on the request content (see Content below)

    var json = """
{"name":"Alice","email":"[email protected]"}
""";
    request.Content = new StringContent(json, Encoding.UTF8, "application/json");

    using var response = await client.SendAsync(request, cancellationToken);
    response.EnsureSuccessStatusCode();
    return await response.Content.ReadAsStringAsync(cancellationToken);
}