如何使Windows版本包含在UserAgent字符串中

时间:2015-08-11 08:59:10

标签: c# .net http http-headers user-agent

我想从我的c#app发送一个HTTP请求,我想要一个正确构造的用户代理字符串,以便(至少)操作系统能够很好地表示。

我发现了这个:

https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx#PltToken

允许我查找给定版本的Windows的正确字符串(我的应用程序只能在Windows上运行),但我当然不希望自己有一个查找表(如果我的应用程序运行,该怎么办?一个新版本的Windows,我需要更新它只是为了添加一个新的UA字符串!

必须有一些我可以调用的API来获取当前操作系统的UA字符串,我似乎无法找到它。

1 个答案:

答案 0 :(得分:0)

目前还不清楚你的意思是什么?#34;代表性很好"。 Most browsers只报告" Windows NT $ NTversion"。

有关如何获取Windows版本的信息,请参阅Detect Windows version in .netGet OS Version / Friendly Name in C#。基本上是:

string versionString = "Unknown OS Version";

var osVersion = System.Environment.OSVersion;
if (osVersion.Platform == PlatformID.Win32NT)
{
    versionString = string.Format("Windows NT {0}.{1}", 
                                  osVersion.Version.Major, 
                                  osVersion.Version.Minor); 
}
else
{
    // handle non-NT Windows
}

但是,如果您的应用在Windows 8或更高版本(8.1,10,...)上运行,则需要manifest your app for that version,否则它将返回8.0(NT 6.2)。我想,对于较新的Windows版本,您还必须为该版本重新显示。