【问题标题】:Is it possible to use HttpBrowserCapabilities from a c# console application?是否可以从 c# 控制台应用程序中使用 HttpBrowserCapabilities?
【发布时间】:2011-04-22 22:36:12
【问题描述】:

我需要从控制台应用程序中解析 UserAgent 字符串,这似乎是一种简单的方法,但我显然没有 HttpRequest 对象,并且似乎无法使用 User-Agent 标头制作假的(我得到平台不支持的异常)。有什么方法可以做到这一点,还是我应该开始探索用户代理解析的其他替代方案?

【问题讨论】:

  • 你要捕获什么样的页面请求????特别是来自控制台应用程序?
  • 无页面请求。我在一个文本文件中有一个用户代理列表,我想解析浏览器、版本、操作系统和其他一些东西——所有这些都可以通过 Request.Browser 获得,但现在我正试图从中获取它们控制台应用程序和 UserAgent 字符串列表。

标签: c# http parsing browser user-agent


【解决方案1】:

User-Agent 标头可以通过 HttpBrowserCapabilities 类在 BrowserCapabilitiesFactory 的帮助下解析,如下所示:

var userAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) " +
                "Gecko/20100914 Firefox/3.6.10";
var browser = new HttpBrowserCapabilities {
    Capabilities = new Hashtable {{string.Empty, userAgent}}
};
var factory = new BrowserCapabilitiesFactory();
factory.ConfigureBrowserCapabilities(new NameValueCollection(), browser);

【讨论】:

  • 我想在 asp.net 环境之外运行它(分析日志文件)。它似乎不能很好地确定代理类型和版本。 “Mozilla/5.0+(Windows+NT+6.1)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/37.0.2062.120+Safari/537.36”=Chrome 37,但“Mozilla/4.0+(兼容;+ MSIE+7.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+媒体+中心+PC+6.0;+.NET4.0C;+.NET4.0E;+InfoPath.3;+SynapseWorkstation.3.2.1;+MS-RTC+LM+8;+平板电脑+PC+2.0)" = Mozilla。
猜你喜欢
  • 1970-01-01
  • 2020-05-05
  • 2021-10-30
  • 2012-03-26
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-29
相关资源
最近更新 更多