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



我读了一些这样的帖子,这个和其他一些没有回应。然而,我似乎在这里找到了IOS设备的解决方案。

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

有一个明确的方法来判断一个HTTP请求是来自移动应用程序还是来自web浏览器?

感谢

示例:我从移动/平板电脑(我正在开发wifi热点背后的应用程序)开始接收所有http请求,因此我处理来自Facebook应用程序,Whatsup应用程序和浏览器的请求。我不得不拒绝来自Facebook和Whatsup的请求,只处理来自浏览器的请求。Apps User-agent似乎和本地设备浏览器一样

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

android和iphone都可以在web service调用请求时设置自定义user-agent。

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"是来自应用程序,否则来自浏览器。

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

相关内容

  • 没有找到相关文章

最新更新