diff --git a/PackageReadme.md b/PackageReadme.md
index ecf777f3c..90c743808 100644
--- a/PackageReadme.md
+++ b/PackageReadme.md
@@ -52,4 +52,4 @@ For more details see also [Docker](https://github.com/WireMock-Net/WireMock.Net-
More details on using HTTPS (SSL) can be found here [Wiki : HTTPS](https://github.com/WireMock-Net/WireMock.Net/wiki/Using-HTTPS-(SSL))
## :books: Documentation
-For more info, see also this WIKI page: [What is WireMock.Net](https://github.com/WireMock-Net/WireMock.Net/wiki/What-Is-WireMock.Net).
\ No newline at end of file
+For more info, see also this WIKI page: [What is WireMock.Net](https://github.com/WireMock-Net/WireMock.Net/wiki/What-Is-WireMock.Net).
diff --git a/src/WireMock.Net.Testcontainers/WireMock.Net.Testcontainers.csproj b/src/WireMock.Net.Testcontainers/WireMock.Net.Testcontainers.csproj
index 8c3dad812..2943d0148 100644
--- a/src/WireMock.Net.Testcontainers/WireMock.Net.Testcontainers.csproj
+++ b/src/WireMock.Net.Testcontainers/WireMock.Net.Testcontainers.csproj
@@ -19,12 +19,15 @@
true
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
@@ -33,4 +36,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/WireMock.Net.Testcontainers/WireMockContainer.cs b/src/WireMock.Net.Testcontainers/WireMockContainer.cs
index 6532b07f0..9a9a0bdf8 100644
--- a/src/WireMock.Net.Testcontainers/WireMockContainer.cs
+++ b/src/WireMock.Net.Testcontainers/WireMockContainer.cs
@@ -8,6 +8,7 @@
using RestEase;
using Stef.Validation;
using WireMock.Client;
+using WireMock.Http;
namespace WireMock.Net.Testcontainers;
@@ -71,7 +72,7 @@ public HttpClient CreateClient(params DelegatingHandler[] handlers)
{
ValidateIfRunning();
- var client = HttpClientFactory.Create(handlers);
+ var client = HttpClientFactory2.Create(handlers);
client.BaseAddress = GetPublicUri();
return client;
}
@@ -93,7 +94,7 @@ public HttpClient CreateClient(HttpMessageHandler innerHandler, params Delegatin
{
ValidateIfRunning();
- var client = HttpClientFactory.Create(innerHandler, handlers);
+ var client = HttpClientFactory2.Create(innerHandler, handlers);
client.BaseAddress = GetPublicUri();
return client;
}
diff --git a/src/WireMock.Net/Http/HttpClientFactory2.cs b/src/WireMock.Net/Http/HttpClientFactory2.cs
index 036901722..9dd71ada2 100644
--- a/src/WireMock.Net/Http/HttpClientFactory2.cs
+++ b/src/WireMock.Net/Http/HttpClientFactory2.cs
@@ -1,3 +1,4 @@
+using System.Linq;
using System.Net.Http;
namespace WireMock.Http;
@@ -6,19 +7,31 @@ internal static class HttpClientFactory2
{
public static HttpClient Create(params DelegatingHandler[] handlers)
{
-#if NETSTANDARD1_3
- return new HttpClient();
-#else
- return HttpClientFactory.Create(handlers);
-#endif
+ var handler = CreateHandlerPipeline(new HttpClientHandler(), handlers);
+ return new HttpClient(handler);
}
public static HttpClient Create(HttpMessageHandler innerHandler, params DelegatingHandler[] handlers)
{
-#if NETSTANDARD1_3
- return new HttpClient(innerHandler);
-#else
- return HttpClientFactory.Create(innerHandler, handlers);
-#endif
+ var handler = CreateHandlerPipeline(innerHandler, handlers);
+ return new HttpClient(handler);
+ }
+
+ private static HttpMessageHandler CreateHandlerPipeline(HttpMessageHandler handler, params DelegatingHandler[] delegatingHandlers)
+ {
+ if (delegatingHandlers.Length == 0)
+ {
+ return handler;
+ }
+
+ var next = handler;
+
+ foreach (var delegatingHandler in delegatingHandlers.Reverse())
+ {
+ delegatingHandler.InnerHandler = next;
+ next = delegatingHandler;
+ }
+
+ return next;
}
}
\ No newline at end of file
diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj
index 4783414ec..c0fdd3737 100644
--- a/src/WireMock.Net/WireMock.Net.csproj
+++ b/src/WireMock.Net/WireMock.Net.csproj
@@ -82,7 +82,6 @@
-
diff --git a/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj b/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
index c9ef88e71..c6f56ad42 100644
--- a/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
+++ b/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
@@ -72,6 +72,7 @@
+
@@ -134,7 +135,4 @@
-
-
-
\ No newline at end of file