Web api HttpContext.Current.Request.UserAgent始终为null

时间:2014-12-01 15:44:07

标签: c# asp.net asp.net-web-api

我正在尝试获取一些api用户请求信息,例如他们使用的设备和操作系统,所以我尝试了这样:

private string GetDeviceInfo()
    {
        var userAgent = HttpContext.Current.Request.UserAgent;
        var uaParser = Parser.GetDefault();
        var c = uaParser.Parse(userAgent);
        return c.Device + "|" + c.OS + "|" + c.UserAgent;
    }

HttpContext.Current.Request.UserAgent始终为空!我搜索过它并尝试了这个link,你能告诉我出了什么问题吗?

1 个答案:

答案 0 :(得分:5)

Request.UserAgent只是HTTP请求中"user agent" header的值。浏览器会自动发送所有请求(包括AJAX),没有浏览器的客户端通常不会包含这样的标题。

如果您的“客户”不是浏览器,则需要添加具有适当值的标头。

使用HttpWebRequest

时的示例
var request = (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
request.UserAgent="My custom user agent string";
var response = (HttpWebResponse)myHttpWebRequest.GetResponse();