Merge pull request #3935 from crobibero/default-http-client
Add Default Http Client
This commit is contained in:
commit
5c50d5356c
|
@ -1,13 +1,14 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Net.Http.Headers;
|
||||
using Jellyfin.Api.TypeConverters;
|
||||
using Jellyfin.Server.Extensions;
|
||||
using Jellyfin.Server.Middleware;
|
||||
using Jellyfin.Server.Models;
|
||||
using MediaBrowser.Common;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
@ -51,7 +52,21 @@ namespace Jellyfin.Server
|
|||
services.AddCustomAuthentication();
|
||||
|
||||
services.AddJellyfinApiAuthorization();
|
||||
services.AddHttpClient();
|
||||
|
||||
var productHeader = new ProductInfoHeaderValue(_applicationHost.Name.Replace(' ', '-'), _applicationHost.ApplicationVersionString);
|
||||
services
|
||||
.AddHttpClient(NamedClient.Default, c =>
|
||||
{
|
||||
c.DefaultRequestHeaders.UserAgent.Add(productHeader);
|
||||
})
|
||||
.ConfigurePrimaryHttpMessageHandler(x => new DefaultHttpClientHandler());
|
||||
|
||||
services.AddHttpClient(NamedClient.MusicBrainz, c =>
|
||||
{
|
||||
c.DefaultRequestHeaders.UserAgent.Add(productHeader);
|
||||
c.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue($"({_applicationHost.ApplicationUserAgentAddress})"));
|
||||
})
|
||||
.ConfigurePrimaryHttpMessageHandler(x => new DefaultHttpClientHandler());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
20
MediaBrowser.Common/Net/DefaultHttpClientHandler.cs
Normal file
20
MediaBrowser.Common/Net/DefaultHttpClientHandler.cs
Normal file
|
@ -0,0 +1,20 @@
|
|||
using System.Net;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace MediaBrowser.Common.Net
|
||||
{
|
||||
/// <summary>
|
||||
/// Default http client handler.
|
||||
/// </summary>
|
||||
public class DefaultHttpClientHandler : HttpClientHandler
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DefaultHttpClientHandler"/> class.
|
||||
/// </summary>
|
||||
public DefaultHttpClientHandler()
|
||||
{
|
||||
// TODO change to DecompressionMethods.All with .NET5
|
||||
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
|
||||
}
|
||||
}
|
||||
}
|
18
MediaBrowser.Common/Net/NamedClient.cs
Normal file
18
MediaBrowser.Common/Net/NamedClient.cs
Normal file
|
@ -0,0 +1,18 @@
|
|||
namespace MediaBrowser.Common.Net
|
||||
{
|
||||
/// <summary>
|
||||
/// Registered http client names.
|
||||
/// </summary>
|
||||
public static class NamedClient
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the value for the default named http client.
|
||||
/// </summary>
|
||||
public const string Default = nameof(Default);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the value for the MusicBrainz named http client.
|
||||
/// </summary>
|
||||
public const string MusicBrainz = nameof(MusicBrainz);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user