diff --git a/src/activities/Elsa.Activities.Http/Middleware/HttpEndpointMiddleware.cs b/src/activities/Elsa.Activities.Http/Middleware/HttpEndpointMiddleware.cs index 60132a6af..9f7628a4b 100644 --- a/src/activities/Elsa.Activities.Http/Middleware/HttpEndpointMiddleware.cs +++ b/src/activities/Elsa.Activities.Http/Middleware/HttpEndpointMiddleware.cs @@ -106,7 +106,11 @@ namespace Elsa.Activities.Http.Middleware if (readContent) { var targetType = await activityWrapper.EvaluatePropertyValueAsync(x => x.TargetType, cancellationToken); - inputModel = inputModel with { Body = await contentParser.ParseAsync(request, targetType, cancellationToken) }; + inputModel = inputModel with + { + RawBody = await request.ReadContentAsStringAsync(cancellationToken), + Body = await contentParser.ParseAsync(request, targetType, cancellationToken) + }; } var useDispatch = httpContext.Request.GetUseDispatch(); diff --git a/src/activities/Elsa.Activities.Http/Models/HttpRequestModel.cs b/src/activities/Elsa.Activities.Http/Models/HttpRequestModel.cs index d32188c98..2f9642c52 100644 --- a/src/activities/Elsa.Activities.Http/Models/HttpRequestModel.cs +++ b/src/activities/Elsa.Activities.Http/Models/HttpRequestModel.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; namespace Elsa.Activities.Http.Models { - public record HttpRequestModel(string Path, string Method, IDictionary QueryString, IDictionary Headers, object? Body = default) + public record HttpRequestModel(string Path, string Method, IDictionary QueryString, IDictionary Headers, object? Body = default, string? RawBody = default) { public T GetBody() => (T) Body!; } diff --git a/src/activities/Elsa.Activities.Http/Parsers/Request/FormHttpRequestBodyParser.cs b/src/activities/Elsa.Activities.Http/Parsers/Request/FormHttpRequestBodyParser.cs index 5cf19ea4c..afe40b716 100644 --- a/src/activities/Elsa.Activities.Http/Parsers/Request/FormHttpRequestBodyParser.cs +++ b/src/activities/Elsa.Activities.Http/Parsers/Request/FormHttpRequestBodyParser.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using Elsa.Activities.Http.Services; using Microsoft.AspNetCore.Http; -namespace Elsa.Activities.Http.Parsers +namespace Elsa.Activities.Http.Parsers.Request { public class FormHttpRequestBodyParser : IHttpRequestBodyParser { diff --git a/src/activities/Elsa.Activities.Http/Parsers/Request/JsonHttpRequestBodyParser.cs b/src/activities/Elsa.Activities.Http/Parsers/Request/JsonHttpRequestBodyParser.cs index 94ef5756e..cd6eb1a0b 100644 --- a/src/activities/Elsa.Activities.Http/Parsers/Request/JsonHttpRequestBodyParser.cs +++ b/src/activities/Elsa.Activities.Http/Parsers/Request/JsonHttpRequestBodyParser.cs @@ -7,7 +7,7 @@ using Elsa.Activities.Http.Services; using Elsa.Serialization; using Microsoft.AspNetCore.Http; -namespace Elsa.Activities.Http.Parsers +namespace Elsa.Activities.Http.Parsers.Request { public class JsonHttpRequestBodyParser : IHttpRequestBodyParser {