JSON-тело POST в C#
Текст JSON кладут в StringContent и
указывают тип
"Content-Type: application/json".
Запрос PostAsync создаёт запись. Учебный
jsonplaceholder часто возвращает в теле
присвоенный id.
После успешного POST из ответа читают id.
В консоли True, если это число больше нуля:
using System.Net.Http;
using System.Text;
using System.Text.Json;
using HttpClient client = new();
using HttpContent body = new StringContent("{\"title\":\"demo\",\"body\":\"x\",\"userId\":1}", Encoding.UTF8, "application/json");
using HttpResponseMessage response = await client.PostAsync("https://jsonplaceholder.typicode.com/posts", body);
response.EnsureSuccessStatusCode();
using JsonDocument doc = JsonDocument.Parse(await response.Content.ReadAsStringAsync());
Console.WriteLine(doc.RootElement.GetProperty("id").GetInt32() > 0);
При ошибке валидации сервер может вернуть
4xx с телом-описанием; jsonplaceholder редко
отклоняет учебные POST. Клиент без проверки кода
может разобрать HTML-страницу ошибки как JSON и
получить JsonException.
Отправьте на "https://httpbin.org/post" JSON
с полем "name" и значением "ada".
Выведите часть тела ответа, где видно "ada".