diff --git a/m365-developer-proxy-plugins/MockResponses/MockResponsePlugin.cs b/m365-developer-proxy-plugins/MockResponses/MockResponsePlugin.cs index 0ffd1726..677ad66f 100644 --- a/m365-developer-proxy-plugins/MockResponses/MockResponsePlugin.cs +++ b/m365-developer-proxy-plugins/MockResponses/MockResponsePlugin.cs @@ -180,6 +180,12 @@ private void ProcessMockResponse(SessionEventArgs e, MockResponse matchingRespon if (matchingResponse.ResponseHeaders is not null) { foreach (var key in matchingResponse.ResponseHeaders.Keys) { + // remove duplicate headers + var existingHeader = headers.FirstOrDefault(h => h.Name.Equals(key, StringComparison.OrdinalIgnoreCase)); + if (existingHeader is not null) { + headers.Remove(existingHeader); + } + headers.Add(new HttpHeader(key, matchingResponse.ResponseHeaders[key])); } } @@ -205,6 +211,8 @@ private void ProcessMockResponse(SessionEventArgs e, MockResponse matchingRespon else { var bodyBytes = File.ReadAllBytes(filePath); e.GenericResponse(bodyBytes, statusCode, headers); + _logger?.LogRequest(new[] { $"{matchingResponse.ResponseCode ?? 200} {matchingResponse.Url}" }, MessageType.Mocked, new LoggingContext(e)); + return; } } else {