Use named HttpClients (#15375)

* Use named HttpClients

* Register as named client

* Set headers on request message.

* Add User agent header to http client

* Add headers within Try-catch

* Add using for HttpResponseMessage

* Update src/Umbraco.Infrastructure/BackgroundJobs/Jobs/WebhookFiring.cs

Co-authored-by: Ronald Barendse <ronald@barend.se>

* Update src/Umbraco.Infrastructure/BackgroundJobs/Jobs/WebhookFiring.cs

Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>

* Log key instead of entire webhook

* Update src/Umbraco.Web.Common/DependencyInjection/UmbracoBuilderExtensions.cs

Co-authored-by: Ronald Barendse <ronald@barend.se>

* Create constant for User agent header name

* Update src/Umbraco.Infrastructure/BackgroundJobs/Jobs/WebhookFiring.cs

Co-authored-by: Ronald Barendse <ronald@barend.se>

* Use datetime.now

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
This commit is contained in:
Nikolaj Geisle
2023-12-07 09:51:44 +01:00
committed by GitHub
parent 370e1cc125
commit 4ff2572d78
4 changed files with 47 additions and 18 deletions

View File

@@ -1,4 +1,5 @@
using System.Data.Common;
using System.Net.Http.Headers;
using System.Reflection;
using Dazinator.Extensions.FileProviders.GlobPatternFilter;
using Microsoft.AspNetCore.Builder;
@@ -10,7 +11,6 @@ using Microsoft.AspNetCore.Server.Kestrel.Core;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Serilog.Extensions.Logging;
@@ -23,6 +23,7 @@ using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Blocks;
using Umbraco.Cms.Core.Cache;
using Umbraco.Cms.Core.Composing;
using Umbraco.Cms.Core.Configuration;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.DependencyInjection;
using Umbraco.Cms.Core.Diagnostics;
@@ -261,6 +262,11 @@ public static partial class UmbracoBuilderExtensions
ServerCertificateCustomValidationCallback =
HttpClientHandler.DangerousAcceptAnyServerCertificateValidator,
});
builder.Services.AddHttpClient(Constants.HttpClients.WebhookFiring, (services, client) =>
{
var productVersion = services.GetRequiredService<IUmbracoVersion>().SemanticVersion.ToSemanticStringWithoutBuild();
client.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue(Constants.HttpClients.Headers.UserAgentProductName, productVersion));
});
return builder;
}