Chuyển đổi curl sang C#
Chuyển đổi các lệnh curl thành mã C# bằng HttpClient. curl2code chạy hoàn toàn trong trình duyệt của bạn thông qua WebAssembly — dữ liệu của bạn luôn được riêng tư. Để phát triển Java, hãy thử trình chuyển đổi curl sang Java của chúng tôi. Đối với TypeScript, hãy xem curl sang TypeScript. Dưới đây là các ví dụ C# sẵn sàng sử dụng.
Cách sao chép curl từ trình duyệt của bạn
- 1
Mở DevTools
Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.
- 2
Đi tới tab Network
Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.
- 3
Sao chép dưới dạng cURL
Nhấp chuột phải vào yêu cầu → Sao chép → Copy as cURL. Sau đó dán nó vào bên trên.
Câu hỏi thường gặp
C# HttpClient là gì?
HttpClient là HTTP client hiện đại, tích hợp sẵn trong .NET. Nó hỗ trợ async/await một cách tự nhiên, HTTP/2, tự động giải nén và connection pooling. Sử dụng một instance HttpClient duy nhất (hoặc IHttpClientFactory) trong suốt ứng dụng của bạn để tránh cạn kiệt socket. Đây là thư viện mặc định và duy nhất curl2code sử dụng cho các chuyển đổi C#.
HttpClient so với WebClient so với HttpWebRequest — nên sử dụng cái nào?
HttpClient là tiêu chuẩn hiện đại — luôn sử dụng nó cho các dự án .NET mới. WebClient và HttpWebRequest là di sản và không nên được sử dụng trong mã mới. HttpClient cung cấp hỗ trợ bất đồng bộ, hiệu suất tốt hơn và API sạch sẽ hơn. Để biết các client hiện đại tương tự, hãy xem curl sang Java hoặc curl sang Go.
Làm thế nào để xử lý xác thực trong C#?
Thiết lập header: client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token). Đối với xác thực Basic, mã hóa thông tin xác thực và thiết lập header. Xác thực trên mỗi yêu cầu sử dụng request.Headers.Authorization. curl2code phát hiện -u và -H 'Authorization' và tạo mã C# chính xác.
Làm thế nào để gửi dữ liệu form multipart trong C#?
Sử dụng MultipartFormDataContent: thêm StringContent cho các trường và StreamContent với ContentDisposition cho các tệp. Truyền nội dung multipart vào PostAsync(url, content). Ranh giới Content-Type được thiết lập tự động. curl2code chuyển đổi các cờ -F theo mẫu này.
Làm thế nào để xử lý lỗi HTTP trong C#?
Gọi response.EnsureSuccessStatusCode() để ném HttpRequestException cho các trạng thái không phải 2xx. Hoặc kiểm tra response.IsSuccessStatusCode và response.StatusCode thủ công. Bao bọc trong try/catch cho HttpRequestException, TaskCanceledException (timeout) và OperationCanceledException.
Làm thế nào để sử dụng async/await với HttpClient?
HttpClient được thiết kế bất đồng bộ — tất cả các phương thức đều trả về Task: var response = await client.GetAsync(url). Sử dụng await response.Content.ReadAsStringAsync() cho body. Đối với các yêu cầu song song, hãy sử dụng Task.WhenAll(). Không bao giờ sử dụng .Result hoặc .Wait() — chúng có thể gây ra deadlock. Để biết các mẫu bất đồng bộ tương tự, hãy xem curl sang TypeScript.
Làm thế nào để thiết lập timeout trong C# HttpClient?
Thiết lập client.Timeout = TimeSpan.FromSeconds(30) cho timeout tổng thể. Để kiểm soát trên từng yêu cầu, hãy sử dụng CancellationTokenSource với một timeout: new CancellationTokenSource(TimeSpan.FromSeconds(10)). Để thử lại, hãy sử dụng thư viện Polly hoặc IHttpClientFactory với các chính sách thử lại.
Làm thế nào để cấu hình một proxy trong C#?
Tạo một HttpClientHandler với proxy: handler.Proxy = new WebProxy("http://proxy:8080"). Truyền handler vào new HttpClient(handler). Để bỏ qua proxy cho các địa chỉ nội bộ, hãy thiết lập handler.Proxy.BypassProxyOnLocal = true. curl2code chuyển đổi các cờ -x và --proxy sang thiết lập này.
Làm thế nào để gửi một yêu cầu POST với thân JSON trong C#?
Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL sang C# bằng cách sử dụng curl2code. Mã được tạo sử dụng new StringContent(json, Encoding.UTF8, 'application/json'). curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã HttpClient.
Làm thế nào để thêm xác thực Bearer token trong C#?
Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã HttpClient với header xác thực: client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue('Bearer', token). curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..." và --oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.
Làm thế nào để thiết lập header Content-Type trong C#?
curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã HttpClient với header chính xác: new StringContent(json, Encoding.UTF8, 'application/json'). Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới HttpClient API chính xác.