Merge pull request #842 from Cucumberrbob/feat/always-set-user-agent
set user agent for all `HttpClient`s from `IHttpClientFactory`
This commit is contained in:
commit
3bc657dbb2
2 changed files with 12 additions and 5 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
using System.IO.Abstractions;
|
using System.IO.Abstractions;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Reflection;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Polly;
|
using Polly;
|
||||||
|
|
@ -15,6 +16,7 @@ namespace RdtClient.Service;
|
||||||
public static class DiConfig
|
public static class DiConfig
|
||||||
{
|
{
|
||||||
public const String RD_CLIENT = "RdClient";
|
public const String RD_CLIENT = "RdClient";
|
||||||
|
public static readonly String UserAgent = $"rdt-client {Assembly.GetEntryAssembly()?.GetName().Version}";
|
||||||
|
|
||||||
public static void RegisterRdtServices(this IServiceCollection services)
|
public static void RegisterRdtServices(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
|
|
@ -55,13 +57,20 @@ public static class DiConfig
|
||||||
|
|
||||||
public static void RegisterHttpClients(this IServiceCollection services)
|
public static void RegisterHttpClients(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddHttpClient();
|
|
||||||
|
|
||||||
var retryPolicy = HttpPolicyExtensions
|
var retryPolicy = HttpPolicyExtensions
|
||||||
.HandleTransientHttpError()
|
.HandleTransientHttpError()
|
||||||
.OrResult(r => r.StatusCode == HttpStatusCode.TooManyRequests)
|
.OrResult(r => r.StatusCode == HttpStatusCode.TooManyRequests)
|
||||||
.WaitAndRetryAsync(retryCount: 5, sleepDurationProvider: attempt => TimeSpan.FromSeconds(Math.Pow(2, attempt)));
|
.WaitAndRetryAsync(retryCount: 5, sleepDurationProvider: attempt => TimeSpan.FromSeconds(Math.Pow(2, attempt)));
|
||||||
|
|
||||||
|
services.AddHttpClient();
|
||||||
|
services.ConfigureHttpClientDefaults(builder =>
|
||||||
|
{
|
||||||
|
builder.ConfigureHttpClient(httpClient =>
|
||||||
|
{
|
||||||
|
httpClient.DefaultRequestHeaders.Add("User-Agent", UserAgent);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
services.AddHttpClient(RD_CLIENT)
|
services.AddHttpClient(RD_CLIENT)
|
||||||
.AddPolicyHandler(retryPolicy);
|
.AddPolicyHandler(retryPolicy);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using System.Reflection;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
@ -25,7 +24,6 @@ public class TorBoxTorrentClient(ILogger<TorBoxTorrentClient> logger, IHttpClien
|
||||||
}
|
}
|
||||||
|
|
||||||
var httpClient = httpClientFactory.CreateClient();
|
var httpClient = httpClientFactory.CreateClient();
|
||||||
httpClient.DefaultRequestHeaders.Add("User-Agent", $"rdt-client {Assembly.GetEntryAssembly()?.GetName().Version}");
|
|
||||||
httpClient.Timeout = TimeSpan.FromSeconds(Settings.Get.Provider.Timeout);
|
httpClient.Timeout = TimeSpan.FromSeconds(Settings.Get.Provider.Timeout);
|
||||||
|
|
||||||
var torBoxNetClient = new TorBoxNetClient(null, httpClient, 5);
|
var torBoxNetClient = new TorBoxNetClient(null, httpClient, 5);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue