Я пытаюсь использовать SDK API анализа текста Azure для dotnet ( в основном этот пакет nuget ).Я использую Mac.
Я получаю следующее исключение при запуске кода (я использую Mac):
Формат значения 'Darwin17.7.0DarwinKernelVersion17.7.0WedOct10230614PDT2018rootxnu-4570.71.131 / RELEASE_X86_64 'недопустимо.
Этот код вызывает исключение:
var serviceClientCredentials = new AzureApiKeyServiceClientCredentials("<key>");
// Throw an exception here
var client = new TextAnalyticsClient(_serviceClientCredentials);
Класс ServiceClientCredentials:
public class AzureApiKeyServiceClientCredentials : ServiceClientCredentials
{
private readonly string _subscriptionKey;
public AzureApiKeyServiceClientCredentials(string subscriptionKey)
{
_subscriptionKey = subscriptionKey;
}
public override Task ProcessHttpRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
request.Headers.Add("Ocp-Apim-Subscription-Key", _subscriptionKey);
return base.ProcessHttpRequestAsync(request, cancellationToken);
}
}
Источник проблемы :
После попытки понять исходный код я обнаружил, что TextAnalyticsClient
пытается установить ключ / значение заголовка, и значение не является действительным значением заголовка http (то есть Darwin..../RELEASE_X86_64
).Более конкретно, я вижу в источнике, он устанавливает OsVersion
в заголовке HttpClient
, и это не является дружественным для URL значением, а HttpClient
выдает исключение:
this.UpdateDefaultUserAgentList("OSVersion", this.OsVersion);
Я создал выпуск на GitHub .Итак, все, что им нужно сделать, чтобы это исправить, это всегда звонить CleanUserAgentInfoEntry(_osVersion)
.
Я вижу в их источнике, что они получают OsVersion
от new PlatformInfo();
, и яИнтересно, можно ли изменить RuntimeInformation.OSDescription
Обновление : Я создал запрос на получение , чтобы исправить проблему.