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

本文关键字:UserAgent Request api HttpContext Current Web | 更新日期: 2023-09-27 18:32:51

我正在尝试获取一些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总是空的!我搜索了一下并尝试了这个链接,你能告诉我出了什么问题吗?

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

Request.UserAgent只是HTTP请求中"用户代理"标头的值。浏览器会自动将其与所有请求(包括AJAX)一起发送,无浏览器客户端通常不会包含此类标头。

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

使用 HttpWebRequest 时的示例

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