diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 5201a5f..7d35a2a 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,3 +1,9 @@
+v 10.3.0
+- The Library is now compatible with .NET 8 (and .NET 6).
+- Removed large dependency on Microsoft.AspNetCore.Components.WebAssembly package in favour of smaller Abstractions packages, this also fixed the warning people would get using dotnet 9 that says that multiple packages including System.Text.Json are vulnerable.
+- Changed various internal code style to be more consistent with .NET 8 standards (only syntax no breaking changes).
+- Fixed some typos in documentation.
+
v.10.2.0
- Improve: GetCapturedContentAsync() will proceed even if the response has illegal content headers.
diff --git a/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptor.cs b/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptor.cs
index 474d1bb..d42d4b0 100644
--- a/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptor.cs
+++ b/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptor.cs
@@ -5,7 +5,7 @@
namespace Toolbelt.Blazor
{
///
- /// Intercept all of the sending HTTP requests on a client side Blazor application.
+ /// Intercept all the sending HTTP requests on a client side Blazor application.
///
public class HttpClientInterceptor : IHttpClientInterceptor
{
@@ -20,12 +20,12 @@ public class HttpClientInterceptor : IHttpClientInterceptor
public event HttpClientInterceptorEventHandler BeforeSendAsync;
///
- /// Occurs after received a response of a HTTP request. (include it wasn't succeeded.)
+ /// Occurs after received a response of an HTTP request. (include it wasn't succeeded.)
///
public event EventHandler AfterSend;
///
- /// Occurs after received a response of a HTTP request. (include it wasn't succeeded.)
+ /// Occurs after received a response of an HTTP request. (include it wasn't succeeded.)
///
public event HttpClientInterceptorEventHandler AfterSendAsync;
diff --git a/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorEventArgs.cs b/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorEventArgs.cs
index f6e88f1..d6a32b9 100644
--- a/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorEventArgs.cs
+++ b/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorEventArgs.cs
@@ -21,7 +21,7 @@ public class HttpClientInterceptorEventArgs : EventArgs
///
/// The HttpResponseMessage object that is returned from HTTP request handler.
/// This property is available only when "AfterSend" event is fired.
- /// [NOTICE]
Don't retrive content from the "Response.Content" property directly.
+ /// [NOTICE]
Don't retrieve content from the "Response.Content" property directly.
/// Instead, call the "GetCapturedContentAsync()" method of this event arguments object to do it.
///
public HttpResponseMessage Response { get; }
diff --git a/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorExtension.cs b/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorExtension.cs
index 28fa9f7..16fd798 100644
--- a/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorExtension.cs
+++ b/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorExtension.cs
@@ -12,7 +12,7 @@ namespace Toolbelt.Blazor.Extensions.DependencyInjection
///
public static class HttpClientInterceptorExtension
{
- private static readonly FieldInfo HandlerField = typeof(HttpMessageInvoker).GetField("_handler", BindingFlags.Instance | BindingFlags.NonPublic);
+ private static readonly FieldInfo? HandlerField = typeof(HttpMessageInvoker).GetField("_handler", BindingFlags.Instance | BindingFlags.NonPublic);
///
/// Adds a HttpClientInterceptor service to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
@@ -22,29 +22,33 @@ public static void AddHttpClientInterceptor(this IServiceCollection services)
{
services.TryAddSingleton(services =>
{
- if (HandlerField != null)
+ if (HandlerField == null)
{
- var httpClient = default(HttpClient);
- try
- {
- httpClient = services.GetService();
- }
- catch (InvalidOperationException e) when (e.Source == "Microsoft.Extensions.DependencyInjection" && e.HResult == -2146233079)
- {
- }
+ return new HttpClientInterceptor();
+ }
- if (httpClient != null)
- {
- httpClient.EnableIntercept(services);
- }
+ var httpClient = default(HttpClient);
+
+ try
+ {
+ httpClient = services.GetService();
+ }
+ catch (InvalidOperationException e) when (e.Source == "Microsoft.Extensions.DependencyInjection" && e.HResult == -2146233079)
+ {
}
+ httpClient?.EnableIntercept(services);
+
return new HttpClientInterceptor();
});
services.TryAddSingleton(services =>
{
var interceptor = services.GetService();
+ if (interceptor == null)
+ {
+ throw new NullReferenceException("HttpClientInterceptor is not registered. Please call AddHttpClientInterceptor() before AddHttpClientInterceptorHandler().");
+ }
return (IHttpClientInterceptor)interceptor;
});
}
diff --git a/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorHandler.cs b/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorHandler.cs
index 3bc9466..a1c0820 100644
--- a/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorHandler.cs
+++ b/Toolbelt.Blazor.HttpClientInterceptor/HttpClientInterceptorHandler.cs
@@ -19,7 +19,7 @@ internal class HttpClientInterceptorHandler : HttpMessageHandler
private readonly HttpMessageHandler BaseHandler;
- private readonly ILogger Logger;
+ private readonly ILogger Logger;
public HttpClientInterceptorHandler(IServiceProvider services, HttpMessageHandler baseHandler)
{
@@ -46,7 +46,7 @@ protected override async Task SendAsync(HttpRequestMessage
}
else
{
- response = await (SendAsyncMethod.Invoke(this.BaseHandler, new object[] { request, cancellationToken }) as Task);
+ response = await ((Task)SendAsyncMethod.Invoke(this.BaseHandler, new object[] { request, cancellationToken }));
}
return response;
}
diff --git a/Toolbelt.Blazor.HttpClientInterceptor/Toolbelt.Blazor.HttpClientInterceptor.csproj b/Toolbelt.Blazor.HttpClientInterceptor/Toolbelt.Blazor.HttpClientInterceptor.csproj
index 3dedff2..473101d 100644
--- a/Toolbelt.Blazor.HttpClientInterceptor/Toolbelt.Blazor.HttpClientInterceptor.csproj
+++ b/Toolbelt.Blazor.HttpClientInterceptor/Toolbelt.Blazor.HttpClientInterceptor.csproj
@@ -1,26 +1,27 @@
- netstandard2.1
+ netstandard2.1;net6.0;net8.0
bin\$(Configuration)\$(TargetFramework)\$(MSBuildProjectName).xml
$(NoWarn);1591
true
J.Sakamoto
- Copyright © 2018-2022 J.Sakamoto, Mozilla Public License 2.0
+ Copyright © 2018-2024 J.Sakamoto, Mozilla Public License 2.0
https://github.com/jsakamoto/Toolbelt.Blazor.HttpClientInterceptor/
Intercept all of the sending HTTP requests on a client side Blazor application.
blazor,http,httpclient
- 10.2.0
+ 10.3.0
(Please write the package release notes in "../RELEASE-NOTES.txt")
MPL-2.0
../_dist
nupkg-icon.png
README.md
-
+
-
+
+