Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从http请求获取移动设备数据?_C#_Android_.net_Http_Asp.net Web Api2 - Fatal编程技术网

C# 如何从http请求获取移动设备数据?

C# 如何从http请求获取移动设备数据?,c#,android,.net,http,asp.net-web-api2,C#,Android,.net,Http,Asp.net Web Api2,我构建了一个web api,通过应用程序(iOS/Android)通过HTTP请求进行调用。我正在尝试实现一个GET请求,该请求根据设备、操作系统、应用程序版本返回不同的数据。。等等。我一直在IOS设备上使用UserAgent,它工作得很好,如下所示: var uaParser = Parser.GetDefault(); var clientInfo = uaParser.Parse(Request.Headers.UserAgent.ToString());

我构建了一个web api,通过应用程序(iOS/Android)通过HTTP请求进行调用。我正在尝试实现一个GET请求,该请求根据设备、操作系统、应用程序版本返回不同的数据。。等等。我一直在IOS设备上使用UserAgent,它工作得很好,如下所示:

        var uaParser = Parser.GetDefault();

        var clientInfo = uaParser.Parse(Request.Headers.UserAgent.ToString());
此外,如果我通过浏览器打开请求,它也会返回数据。响应示例为:UserAgent:Windows 10其他Chrome 63.0.3239

问题在于Android设备,它既不发送任何关于设备的数据,也不发送任何关于操作系统的数据,我不想在Android应用程序中硬编码细节,我相信它们被发送到某个地方,因为它可以显示iOS和安卓的这些细节


是否有任何可能的解决方案从请求本身获取此数据

如果你真的想这么做,那么你可以通过编程获得android设备名称及其版本,并将其作为http请求中的参数发送到服务器。。。
获取设备名称

String devName = android.os.Build.MODEL;
String androidOS = Build.VERSION.RELEASE;

获取版本代码

String devName = android.os.Build.MODEL;
String androidOS = Build.VERSION.RELEASE;

然后,您可以轻松地将它们作为请求中的参数发送到服务器,并将它们存储到数据库等…
希望这有帮助!干杯

多亏了这一点,问题是正如我所说的,我们可以开始告诉android团队以编程方式发送这些数据,我们开始使用这些数据,而这些请求已经以某种方式发送了这些数据,我不知道如何访问它们!我的证据是:我们正在使用Crashlytics,它显示了这些请求中关于android设备的所有数据,这证明了他们不需要自己发送,它已经发送了。如果你想验证数据是否真的被发送,那么你最好尝试任何好的mitm代理,比如fiddler来验证它