botbuilder-dotnet/libraries/Microsoft.Bot.Builder.AI.LUIS/LuisDelegatingHandler.cs

36 строки
1.4 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;
namespace Microsoft.Bot.Builder.AI.Luis
{
internal class LuisDelegatingHandler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
// Bot Builder Package name and version.
var assemblyName = GetType().Assembly.GetName();
request.Headers.UserAgent.Add(new ProductInfoHeaderValue(assemblyName.Name, assemblyName.Version.ToString()));
// Platform information: OS and language runtime.
var framework = Assembly
.GetEntryAssembly()?
.GetCustomAttribute<TargetFrameworkAttribute>()?
.FrameworkName ?? RuntimeInformation.FrameworkDescription;
var comment = $"({Environment.OSVersion.VersionString};{framework})";
request.Headers.UserAgent.Add(new ProductInfoHeaderValue(comment));
// Forward the call.
return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
}
}
}