refactor: add douban httpclient

This commit is contained in:
cxfksword 2023-09-03 16:03:12 +08:00
parent ed1a72dad6
commit 7e4246003d
2 changed files with 18 additions and 11 deletions

View File

@ -6,7 +6,6 @@ using System.Threading.Tasks;
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using MediaBrowser.Common.Net;
using Jellyfin.Plugin.MetaShark.Api; using Jellyfin.Plugin.MetaShark.Api;
using Jellyfin.Plugin.MetaShark.Model; using Jellyfin.Plugin.MetaShark.Model;
@ -45,12 +44,9 @@ namespace Jellyfin.Plugin.MetaShark.Controllers
} }
HttpResponseMessage response; HttpResponseMessage response;
var httpClient = GetHttpClient(); var httpClient = this._httpClientFactory.CreateClient("douban");
using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, url)) using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, url))
{ {
requestMessage.Headers.Add("User-Agent", DoubanApi.HTTP_USER_AGENT);
requestMessage.Headers.Add("Referer", DoubanApi.HTTP_REFERER);
response = await httpClient.SendAsync(requestMessage); response = await httpClient.SendAsync(requestMessage);
} }
var stream = await response.Content.ReadAsStreamAsync(); var stream = await response.Content.ReadAsStreamAsync();
@ -80,11 +76,5 @@ namespace Jellyfin.Plugin.MetaShark.Controllers
var isLogin = await _doubanApi.CheckLoginAsync(CancellationToken.None); var isLogin = await _doubanApi.CheckLoginAsync(CancellationToken.None);
return new ApiResult(isLogin ? 1 : 0, isLogin ? "logined" : "not login"); return new ApiResult(isLogin ? 1 : 0, isLogin ? "logined" : "not login");
} }
private HttpClient GetHttpClient()
{
var client = _httpClientFactory.CreateClient(NamedClient.Default);
return client;
}
} }
} }

View File

@ -13,6 +13,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using System.Net.Http; using System.Net.Http;
using System.Net;
namespace Jellyfin.Plugin.MetaShark namespace Jellyfin.Plugin.MetaShark
{ {
@ -38,6 +39,22 @@ namespace Jellyfin.Plugin.MetaShark
{ {
return new ImdbApi(ctx.GetRequiredService<ILoggerFactory>()); return new ImdbApi(ctx.GetRequiredService<ILoggerFactory>());
}); });
// douban httpclient 忽略 ssl 证书校验
serviceCollection.AddHttpClient("douban", client =>
{
client.DefaultRequestHeaders.Add("User-Agent", DoubanApi.HTTP_USER_AGENT);
client.DefaultRequestHeaders.Add("Referer", DoubanApi.HTTP_REFERER);
}).ConfigurePrimaryHttpMessageHandler(() =>
{
var handler = new HttpClientHandler
{
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true
};
return handler;
});
} }
} }
} }