Skip to main content
 首页 » 编程设计

c#之Web api HttpContext.Current.Request.UserAgent 始终为 null

2024年01月26日29Terrylee

我试图让一些 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 , 你能告诉我哪里出了问题吗?

请您参考如下方法:

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

如果您的“客户端”不是浏览器,则它需要自己添加具有适当值的 header 。

样本如果使用 HttpWebRequest

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