Avatar ·

Как отправить 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?