Convert a cURL PUT request to C#

Paste any curl PUT command and get clean C# code using HttpClient. Runs entirely in your browser — headers, auth, and JSON bodies map to idiomatic C#.

Quick answer

To convert a cURL command to C#, paste it into the Toolpaper workbench below. It parses the command in your browser and emits idiomatic C# code — headers, query string, request body, authentication (Bearer, Basic, API key), and cookies are all wired up automatically. No data is uploaded; conversion is fully client-side.

Prefer a different target? See the full cURL to C# reference, or jump to the same guide in JavaScript, Node.js, or Python.

InputcURL command
MethodPUT·Headers1·Body23 B· Chars 117
Output.NET · HttpClient(.NET)
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

class Program {
  static async Task Main() {
    using var handler = new HttpClientHandler { AllowAutoRedirect = false };
    using var client = new HttpClient(handler);
    using var request = new HttpRequestMessage(new HttpMethod("PUT"), "https://api.example.com/users/42");
    request.Content = new StringContent("{\"name\":\"Ada Lovelace\"}", Encoding.UTF8, "application/json");
    using var response = await client.SendAsync(request);
    var text = await response.Content.ReadAsStringAsync();
    Console.WriteLine(text);
  }
}
Inspect

Example

A representative curl command for this scenario. Paste your own above to convert an exact match.

curl input
curl -X PUT https://api.example.com/users/42 \
  -H "Content-Type: application/json" \
  -d '{"name":"Ada Lovelace"}'

Implementation notes

  • Request-line method (PUT) and target URL are extracted from the curl command exactly as written — no case-folding, no path rewriting.
  • Every -H header maps to a C# header entry; duplicates are preserved so servers that read multi-valued headers keep behaving.
  • Query strings in the URL stay in the URL; -G with --data-urlencode is promoted to a structured params argument where HttpClient supports it.
  • Request bodies are parsed against Content-Type: JSON bodies use idiomatic serialization (HttpClient), form bodies use URL-encoding, multipart uses -F semantics with file@ handling.
  • TLS flags (--insecure, --cacert, --cert) surface as inline notes so you don't ship an insecure client to production by accident.

Common mistakes

  • Forgetting that -X PUT without a body still sends an empty body — the generated code mirrors that exactly.
  • Assuming curl auto-follows redirects: it doesn't. Add -L (or the generator's follow-redirects flag) if you actually need to chase 3xx responses.
  • Copying a Cookie header from DevTools that already encodes session state — use the Clean panel to strip session cookies before you share.

Common questions

How do I send a PUT request in C#?
Paste your curl PUT command above. Toolpaper generates C# using HttpClient with headers, query string, and (where applicable) request body wired up.
Does the PUT generator handle authentication?
Yes — Authorization headers, Bearer tokens, Basic auth (-u), and API keys pass through to the generated C# code unchanged.
Is my curl sent to a server?
No. Parsing and code generation run in your browser. Nothing is uploaded.
Can I also convert this to other languages?
Yes. Once you paste your command, the language picker lets you switch between 18 targets (fetch, axios, Python, Go, PHP, Ruby, Rust, Java, Kotlin, C#, PowerShell, Swift and more).

More cURL methods in C#

C# hub →

The same guide in other languages

All guides →

Full C# reference on the cURL to C# hub, or open the main converter for all 18 targets.