28 lines
974 B
C#
28 lines
974 B
C#
using System.Net.Http;
|
|||
|
|
using Downloader;
|
||
|
|
|
||
|
|
namespace PCL.Network;
|
||
|
|
|
||
|
|
internal static class DownloadRequestFactory
|
||
|
|
{
|
||
|
|
internal static RequestConfiguration Create(string url, bool useBrowserUserAgent, string customUserAgent = "")
|
||
|
|
{
|
||
|
|
var request = new HttpRequestMessage(HttpMethod.Get, url);
|
||
|
|
RequestSigning.SecretHeadersSign(url, ref request, useBrowserUserAgent, customUserAgent);
|
||
|
|
try
|
||
|
|
{
|
||
|
|
var configuration = new RequestConfiguration();
|
||
|
|
if (request.Headers.UserAgent.Count > 0)
|
||
|
|
configuration.UserAgent = request.Headers.UserAgent.ToString();
|
||
|
|
foreach (var header in request.Headers)
|
||
|
|
if (!header.Key.Equals("User-Agent", StringComparison.OrdinalIgnoreCase))
|
||
|
|
configuration.Headers.Add($"{header.Key}: {string.Join(", ", header.Value)}");
|
||
|
|
return configuration;
|
||
|
|
}
|
||
|
|
finally
|
||
|
|
{
|
||
|
|
request.Dispose();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|