Как отправить HTTP POST запрос в .NET (C#)? Проблема с WebRequest и получением ответа
Всем привет! Я новичок в C# и пытаюсь отправить POST-запрос к внешнему API, чтобы передать JSON данные и получить ответ. Я наткнулся на множество примеров, но они либо устаревшие (с WebRequest), либо слишком сложные для меня.
Вот мой текущий код, который я набросал, но он не работает — я получаю ошибку "The remote server returned an error: (400) Bad Request" или просто зависает:
```csharp
using System.Net;
var request = (HttpWebRequest)WebRequest.Create("https://example.com/api/data");
request.Method = "POST";
request.ContentType = "application/json";
string json = "{\"name\":\"test\",\"value\":123}";
byte[] bytes = Encoding.UTF8.GetBytes(json);
request.ContentLength = bytes.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(bytes, 0, bytes.Length);
}
var response = (HttpWebResponse)request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream()))
{
string result = reader.ReadToEnd();
Console.WriteLine(result);
}
```
Я понимаю, что старый `HttpWebRequest` уже не рекомендуется, но в новых примерах (HttpClient) у меня тоже не получается — я путаюсь с асинхронностью и обработкой ошибок.
Подскажите, пожалуйста, как правильно и современно отправить HTTP POST запрос в .NET (желательно на .NET 6+), чтобы передать JSON и прочитать ответ? Особенно интересует: как обрабатывать ошибки, таймауты и что делать с async/await?
Ответов пока нет.
Войдите чтобы оставить ответ