我正在尝试将Azure文本分析API SDK用于dotnet(basically this nuget package)。我正在使用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);
我创建了一个issue on GitHub。因此,解决该问题所需要做的就是修复always call CleanUserAgentInfoEntry(_osVersion)
。
我从他们的消息来源中看到他们正在从OsVersion
获得new PlatformInfo();
,我想知道是否可以更改RuntimeInformation.OSDescription
更新: 我创建了pull request来解决此问题。
答案 0 :(得分:0)
我刚刚解决了问题,thanks to @shahabhijeet。我安装了最新版本的Microsoft.Rest.ClientRuntime
,它解决了问题。
GitHub问题线程:https://github.com/Azure/azure-sdk-for-net/issues/5046