Различайте http мобильный браузер и запрос мобильного приложения

Я прочитал сообщение вроде this, это и некоторые другие без ответа. Однако, похоже, я нашел здесь решение для Устройство iOS.

Мне нужно отклонить любой HTTP-запрос из любого приложения на любом устройстве и обрабатывать только запрос из веб-браузера, поэтому главный вопрос:

Есть ли точный способ узнать, сделан ли HTTP-запрос из мобильного приложения или из веб-браузера?

Спасибо

Пример: я получаю запуск всех HTTP-запросов с мобильного телефона / планшета (я разрабатываю приложение для точки доступа Wi-Fi), поэтому я обрабатываю запрос из приложения Facebook, приложения Whatsup и браузера. Мне нужно отклонить запрос от Facebook и Whatsup и обработать только запрос из браузера. Пользовательский агент приложений похож на собственный браузер устройства.


person user2357730    schedule 06.08.2014    source источник
comment
Нет, не существует однозначного способа, поскольку приложения могут подделывать любое значение для пользовательского агента.   -  person greenapps    schedule 06.08.2014


Ответы (2)


Вы можете сделать одно. Установите настраиваемый пользовательский агент со стороны приложения.

Вы можете настроить пользовательский агент как на 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" из приложения, а в противном случае из браузера.

person Biraj Zalavadia    schedule 06.08.2014
comment
Спасибо, Бирадж, но мне нужно отличать все запросы приложений (например, приложение facebook, whatsup и т. Д.) От запроса браузера. - person user2357730; 06.08.2014

вы можете проверить пользовательский агент в заголовке запроса, я помню, что мобильные браузеры отправляют другое значение для пользовательского агента, а настольные браузеры - другое. Просто отлаживайте заголовок пользовательского агента и проверяйте его на основе значений.

person Eric    schedule 06.08.2014
comment
Спасибо, Эрик, User-Agent приложения выглядит так же, как и на устройстве с собственным браузером. - person user2357730; 06.08.2014