Zdravím, vytvářet HttpClient() ad-hoc v konstrukci s using ve většině případech není optimální. Posílání payloadu v requestu metodou HTTP GET není doporučeno a HTTP standard říká, že by se obsahu nemělo přihlížet. Ideálně byste měl použít metodu POST/PUT a nebo pokud jen odesíláte menší množství dat (filtry atd.), můžete použít HTTP GET + query string. Ta chybová hláška Vám přímo říká, že HTTP VERB (tedy GET) neumožňuje poslat content-body. Mimochodem jestliže máte JSON in-memory jako string, můžete rovnou použít StringContent() místo ByteArrayContent(). Chcete-li použít stream, pak zhruba:
using HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post, "url");
using (var ms = new MemoryStream())
{
await JsonSerializer.SerializeAsync(ms, DATA, jsonSerializerOptions);
ms.Position = 0;
message.Content = new StreamContent(ms, 1024);
message.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
using var result = await httpClient.SendAsync(message);
Ten var result = client.SendAsync(request).Result také není úplně šťastné řešení - lze tam použít async/await... Na téma konzumace REST API a práci s HttpClient mám i webinář, kdyby Vás téma zajímalo do hloubky: https://www.miroslavholec.cz/webinare MH
|