cURL в C#
Вставьте команду curl и получите код C# с HttpClient, где заголовки размещены так, как требует .NET.
Конвертер cURL в C# полностью работает в вашем браузере: вставленные команды вместе с токенами конвертируются на устройстве и не отправляются.
Открыть конвертер cURL в Java
Об инструменте cURL в C#
Перенос команды curl из документации API в C# — небольшая задача, которая почти всегда спотыкается в одном и том же месте: .NET разделяет заголовки между запросом и его содержимым. Content-Type принадлежит HttpContent, а не HttpRequestMessage, и его установка не на том объекте вызывает не ошибку компиляции, а исключение во время выполнения. Этот конвертер разбирает параметры curl — метод, заголовки, тело и флаг -u, превращающийся в базовую аутентификацию, — и создаёт программу на HttpClient, где каждый заголовок стоит на своём месте.
Возможности
- Разбор метода, заголовков, тела и базовой аутентификации
- Размещение Content-Type в StringContent, как требует .NET
- Преобразование учётных данных -u в AuthenticationHeaderValue
- Нестандартные методы через конструктор HttpMethod
- Директивы using добавляются только по необходимости запроса
- Экранирование тела JSON в корректные литералы C#
Как использовать cURL в C#
- Вставьте команду curl с заголовками и телом
- Читайте сгенерированный код C# по мере ввода
- Скопируйте код или скачайте Program.cs
- Проверьте предупреждения о непереведённых флагах
Пример
Ввод
curl -X POST https://api.example.com/users -H "Content-Type: application/json" -d '{"name":"Ada"}'
Результат
request.Content = new StringContent(
"{\"name\":\"Ada\"}",
Encoding.UTF8,
"application/json");
Тип содержимого передаётся в StringContent, а не в request.Headers — именно эта ошибка вызывает исключение во время выполнения.
Частые ошибки и устранение неполадок
- Установка Content-Type вызывает InvalidOperationException. — В .NET это заголовок содержимого: его нужно устанавливать на HttpContent, как и делает сгенерированный код.
- Запрос работает в curl, но C# возвращает 401. — Проверьте, как передаются учётные данные: -u превращается в base64-заголовок Basic, а токен, вставленный с переносом строки, приведёт к ошибке.
Часто задаваемые вопросы
- Как конвертировать команду curl в C#?
- Вставьте её выше: метод, URL, заголовки и тело будут разобраны и выведены в виде программы на HttpClient.
- Почему нельзя установить Content-Type на HttpRequestMessage?
- Потому что .NET разделяет заголовки запроса и содержимого, а Content-Type относится к последним — установка на request.Headers вызывает исключение.
- Как отправить базовую аутентификацию в C#?
- Закодируйте user:password в base64 и установите как AuthenticationHeaderValue со схемой Basic в DefaultRequestHeaders.
- Отправляется ли моя команда curl куда-либо?
- Нет. Она разбирается и конвертируется в вашем браузере, поэтому токены и ключи в ней остаются на устройстве.
Связанные инструменты
- cURL в Fetch — Преобразуйте команду curl в вызов fetch() на JavaScript.
- curl в Python — Преобразование команды curl в скрипт Python requests.
- cURL в Java — Конвертирует команду curl в код Java с HttpClient.
- curl в Go — Преобразование команды curl в код Go net/http.
- curl в Node.js — Преобразование команды curl в код Node.js axios.
- API-клиент — Отправляйте HTTP-запросы, задавайте заголовки и параметры и изучайте ответы; сохраняет последние 25.
Все инструменты ArrayKit