|
@@ -18,6 +18,7 @@ using System.Threading;
|
|
|
using System.Threading.Tasks;
|
|
|
using Emby.Common.Implementations.HttpClientManager;
|
|
|
using MediaBrowser.Model.IO;
|
|
|
+using MediaBrowser.Common;
|
|
|
|
|
|
namespace Emby.Common.Implementations.HttpClientManager
|
|
|
{
|
|
@@ -43,6 +44,7 @@ namespace Emby.Common.Implementations.HttpClientManager
|
|
|
|
|
|
private readonly IFileSystem _fileSystem;
|
|
|
private readonly IMemoryStreamFactory _memoryStreamProvider;
|
|
|
+ private readonly IApplicationHost _appHost;
|
|
|
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of the <see cref="HttpClientManager" /> class.
|
|
@@ -257,6 +259,8 @@ namespace Emby.Common.Implementations.HttpClientManager
|
|
|
|
|
|
private void AddRequestHeaders(HttpWebRequest request, HttpRequestOptions options)
|
|
|
{
|
|
|
+ var hasUserAgent = false;
|
|
|
+
|
|
|
foreach (var header in options.RequestHeaders.ToList())
|
|
|
{
|
|
|
if (string.Equals(header.Key, "Accept", StringComparison.OrdinalIgnoreCase))
|
|
@@ -265,11 +269,8 @@ namespace Emby.Common.Implementations.HttpClientManager
|
|
|
}
|
|
|
else if (string.Equals(header.Key, "User-Agent", StringComparison.OrdinalIgnoreCase))
|
|
|
{
|
|
|
-#if NET46
|
|
|
- request.UserAgent = header.Value;
|
|
|
-#elif NETSTANDARD1_6
|
|
|
- request.Headers["User-Agent"] = header.Value;
|
|
|
-#endif
|
|
|
+ SetUserAgent(request, header.Value);
|
|
|
+ hasUserAgent = true;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -280,6 +281,20 @@ namespace Emby.Common.Implementations.HttpClientManager
|
|
|
#endif
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if (!hasUserAgent && options.EnableDefaultUserAgent)
|
|
|
+ {
|
|
|
+ SetUserAgent(request, _appHost.Name + "/" + _appHost.ApplicationVersion.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SetUserAgent(HttpWebRequest request, string userAgent)
|
|
|
+ {
|
|
|
+#if NET46
|
|
|
+ request.UserAgent = userAgent;
|
|
|
+#elif NETSTANDARD1_6
|
|
|
+ request.Headers["User-Agent"] = userAgent;
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
/// <summary>
|