Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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/9/ios/102.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
Android 区分http移动浏览器和移动应用程序请求_Android_Ios_Http_User Agent_Captivenetwork - Fatal编程技术网

Android 区分http移动浏览器和移动应用程序请求

Android 区分http移动浏览器和移动应用程序请求,android,ios,http,user-agent,captivenetwork,Android,Ios,Http,User Agent,Captivenetwork,我读了一些类似的帖子,还有一些没有回应。不过,我似乎找到了IOS设备的解决方案 我需要拒绝来自任何设备的任何应用程序的任何http请求,只处理来自web浏览器的请求,所以主要问题是: 有一种确定的方法来判断HTTP请求是从移动应用程序还是从web浏览器发出的 谢谢 示例:我从手机/平板电脑接收所有http请求(我正在wifi热点后面开发应用程序),所以我处理来自Facebook应用程序、Whatsup应用程序和浏览器的请求。我必须拒绝来自Facebook和Whatsup的请求,只处理来自浏览器的

我读了一些类似的帖子,还有一些没有回应。不过,我似乎找到了IOS设备的解决方案

我需要拒绝来自任何设备的任何应用程序的任何http请求,只处理来自web浏览器的请求,所以主要问题是:

有一种确定的方法来判断HTTP请求是从移动应用程序还是从web浏览器发出的

谢谢


示例:我从手机/平板电脑接收所有http请求(我正在wifi热点后面开发应用程序),所以我处理来自Facebook应用程序、Whatsup应用程序和浏览器的请求。我必须拒绝来自Facebook和Whatsup的请求,只处理来自浏览器的请求。应用程序用户代理似乎与本机设备浏览器相同。

您可以在请求头中检查用户代理, 我记得移动浏览器为用户代理发送不同的值,桌面浏览器发送不同的值。
只需调试用户代理标头并根据值进行验证。

您可以在请求标头中检查用户代理, 我记得移动浏览器为用户代理发送不同的值,桌面浏览器发送不同的值。
只需调试用户代理头并根据值进行验证。

您可以做一件事。从应用程序端设置自定义用户代理

在web服务调用请求期间,您可以在android和iphone中设置自定义用户代理

适用于Android

DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "android");
适用于Iphone

NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] 
                                       initWithURL:[NSURL URLWithString:[yourURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
NSString *userAgent = "iphone";
[urlRequest setValue:userAgent forHTTPHeaderField:@"User-Agent"];

如果用户代理是“android”或“iphone”来自应用程序,或者是来自浏览器,请检入请求头。

您可以做一件事。从应用程序端设置自定义用户代理

在web服务调用请求期间,您可以在android和iphone中设置自定义用户代理

适用于Android

DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "android");
适用于Iphone

NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] 
                                       initWithURL:[NSURL URLWithString:[yourURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
NSString *userAgent = "iphone";
[urlRequest setValue:userAgent forHTTPHeaderField:@"User-Agent"];

如果用户代理是“android”或“iphone”来自应用程序或其他浏览器,请检入请求标题。

没有确定的方法,因为应用程序可以为用户代理伪造任何值。没有确定的方法,因为应用程序可以为用户代理伪造任何值。谢谢Biraj,但我需要区分所有应用程序(如facebook应用程序、whatsup等)来自浏览器请求的请求。感谢Biraj,但我需要区分所有应用程序(如facebook应用程序、whatsup等)请求和浏览器请求。感谢Eric,应用程序的用户代理似乎与本机浏览器设备相同。感谢Eric,应用程序的用户代理似乎与本机浏览器设备相同。