diff --git a/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs b/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs index 898c76365..fcf53304e 100644 --- a/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs +++ b/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs @@ -216,6 +216,21 @@ public abstract class SendHttpRequestBase(string? source = null, int? line = nul async Task SendRequestAsyncCore(CancellationToken ct = default) { var request = PrepareRequest(context); + + if (request.Content != null && request.Content.Headers.ContentLength is null) + { + var bytes = await request.Content.ReadAsByteArrayAsync(ct); + + var buffered = new ByteArrayContent(bytes); + + foreach (var h in request.Content.Headers) + buffered.Headers.TryAddWithoutValidation(h.Key, h.Value); + + buffered.Headers.ContentLength = bytes.Length; + + request.Content = buffered; + } + return await httpClient.SendAsync(request, ct); } }