@martensit

Каким сниппетом можно отправить следующий POST запрос на C#?

$ curl -D- -XPUT -H "Content-Type: text/plain" \
    -H"X-Api-Key: $APIKEY" \
    --data-binary @- \
    https://dns.api.gandi.net/api/v5/zones/93cc9312-a214-408b-a75b-9d4172984746/records \
    << EOF
www IN A 192.168.0.1
    IN A 192.168.0.2
@   IN MX 10 spool.mail.gandi.net.
EOF


Через curl он так выглядит.
Мне нужно то же самое отправить, только средствами C#.
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
using System.Net.Http;
using System.Text;

using (var client = new HttpClient())
{
  var url = "https://dns.api.gandi.net/api/v5/zones/93cc9312-a214-408b-a75b-9d4172984746/records";

  // можно просто строку (string) сделать, как будет удобно
  var data = new StringBuilder();
  data.AppendLine("www IN A 192.168.0.1");
  data.AppendLine("    IN A 192.168.0.2");
  data.AppendLine("    IN A 192.168.0.2");
  data.AppendLine("@   IN MX 10 spool.mail.gandi.net.");

  using (var content = new StringContent(data.ToString(), Encoding.UTF8, "text/plain"))
  {
    // HttpMethod.Post, если нужен POST
    using (var request = new HttpRequestMessage(HttpMethod.Put, url))
    {
      // request.Headers.Authorization = new AuthenticationHeaderValue("", "");
      request.Headers.Add("X-Api-Key", "$APIKEY");

      request.Content = content;

      // using (var response = await client.SendAsync(request)
      using (var response = client.SendAsync(request).Result)
      {
        // выбросить исключение, если сервер вернул ошибку
        response.EnsureSuccessStatusCode();

        // var result = await response.Content.ReadAsStringAsync();
        var result = response.Content.ReadAsStringAsync().Result;
        // в result будет ответ сервера
      }
    }
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы