Add SocketsHttpHandler
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
using Jugenddienst_Stunden.Interfaces;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace Jugenddienst_Stunden.Infrastructure;
|
||||
|
||||
internal static class HttpClientRegistration {
|
||||
/// <summary>
|
||||
/// Registriert den ApiClient mit einem SocketsHttpHandler als prim<69>ren MessageHandler.
|
||||
/// Vermeidet den Android-spezifischen Cast-Fehler in Xamarin.Android.Net.AndroidMessageHandler.
|
||||
///</summary>
|
||||
public static IServiceCollection AddApiHttpClient(this IServiceCollection services, ApiOptions options) {
|
||||
if (services is null)
|
||||
throw new ArgumentNullException(nameof(services));
|
||||
if (options is null)
|
||||
throw new ArgumentNullException(nameof(options));
|
||||
|
||||
// ApiOptions als Singleton bereitstellen (kann nach Bedarf angepasst werden)
|
||||
services.AddSingleton(options);
|
||||
|
||||
// HttpClient f<>r ApiClient registrieren und einen SocketsHttpHandler verwenden.
|
||||
// SocketsHttpHandler vermeidet das problematische Casting, das bei AndroidMessageHandler
|
||||
// zur InvalidCastException (URLConnectionInvoker -> HttpURLConnection) f<>hrt.
|
||||
services.AddHttpClient<IApiClient, ApiClient>()
|
||||
.ConfigurePrimaryHttpMessageHandler(() => new SocketsHttpHandler());
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user