Полностью переписанное api
All checks were successful
Release / pack-and-publish (release) Successful in 36s
All checks were successful
Release / pack-and-publish (release) Successful in 36s
This commit is contained in:
47
YandexMusic.API/Common/YandexMusicHttpClientFactory.cs
Normal file
47
YandexMusic.API/Common/YandexMusicHttpClientFactory.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System.Net;
|
||||
|
||||
namespace YandexMusic.API.Common;
|
||||
|
||||
/// <summary>
|
||||
/// Фабрика для создания стандартного HttpClient с поддержкой кук, прокси и автоматической декомпрессией.
|
||||
/// </summary>
|
||||
public static class YandexMusicHttpClientFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Создаёт стандартный HttpClient с автоматическим управлением куками.
|
||||
/// </summary>
|
||||
/// <param name="proxy">Прокси-сервер (опционально).</param>
|
||||
/// <param name="timeout">Таймаут запросов (по умолчанию 30 секунд).</param>
|
||||
/// <param name="userAgent">User-Agent (по умолчанию как у браузера Chrome).</param>
|
||||
/// <returns>Настроенный HttpClient.</returns>
|
||||
public static HttpClient CreateDefault(
|
||||
CookieContainer? cookieContainer = null,
|
||||
IWebProxy? proxy = null,
|
||||
TimeSpan? timeout = null,
|
||||
string? userAgent = null)
|
||||
{
|
||||
var handler = new HttpClientHandler
|
||||
{
|
||||
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
|
||||
UseCookies = true,
|
||||
CookieContainer = cookieContainer ?? new CookieContainer(),
|
||||
AllowAutoRedirect = true,
|
||||
MaxAutomaticRedirections = 10,
|
||||
Proxy = proxy,
|
||||
UseProxy = proxy != null
|
||||
};
|
||||
|
||||
var client = new HttpClient(handler, disposeHandler: true)
|
||||
{
|
||||
Timeout = timeout ?? TimeSpan.FromSeconds(30)
|
||||
};
|
||||
|
||||
// Стандартный User-Agent, похожий на браузерный
|
||||
client.DefaultRequestHeaders.Add("User-Agent",
|
||||
userAgent ?? "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36");
|
||||
client.DefaultRequestHeaders.Add("Accept", "*/*");
|
||||
client.DefaultRequestHeaders.Add("Accept-Language", "ru-RU,ru;q=0.9,en;q=0.8");
|
||||
|
||||
return client;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user