diff --git a/src/WireMock.Net/Admin/Mappings/ResponseModel.cs b/src/WireMock.Net/Admin/Mappings/ResponseModel.cs index e20de800..0cf72ee8 100644 --- a/src/WireMock.Net/Admin/Mappings/ResponseModel.cs +++ b/src/WireMock.Net/Admin/Mappings/ResponseModel.cs @@ -63,6 +63,14 @@ namespace WireMock.Admin.Mappings /// public IDictionary Headers { get; set; } + /// + /// Gets or sets the Headers (Raw). + /// + /// + /// The Headers (Raw). + /// + public string HeadersRaw { get; set; } + /// /// Gets or sets the delay in milliseconds. /// diff --git a/src/WireMock.Net/Server/FluentMockServer.Admin.cs b/src/WireMock.Net/Server/FluentMockServer.Admin.cs index 4a463f4d..bc33e20e 100644 --- a/src/WireMock.Net/Server/FluentMockServer.Admin.cs +++ b/src/WireMock.Net/Server/FluentMockServer.Admin.cs @@ -429,6 +429,16 @@ namespace WireMock.Server if (responseModel.Headers != null) responseBuilder = responseBuilder.WithHeaders(responseModel.Headers); + else if (responseModel.HeadersRaw != null) + { + foreach (string headerLine in responseModel.HeadersRaw.Split(new[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries)) + { + int indexColon = headerLine.IndexOf(":", StringComparison.Ordinal); + string key = headerLine.Substring(0, indexColon).TrimStart(' ', '\t'); + string value = headerLine.Substring(indexColon + 1).TrimStart(' ', '\t'); + responseBuilder = responseBuilder.WithHeader(key, value); + } + } if (responseModel.Body != null) responseBuilder = responseBuilder.WithBody(responseModel.Body, ToEncoding(responseModel.BodyEncoding));