Как отслеживать запросы HTTP (get, post и т.д.), Которые приложение делает в android
В моем собственном приложении я использую различные сторонние SDK, которые делают сетевые вызовы (HTTP-запросы) в той или иной форме. Не редактируя этот код, могу ли я написать код отдельно в приложении для перехвата всех запросов GET и POST, которые делает мое приложение?
Я хочу записать эти HTTP-вызовы в своем приложении
Мне известно использовать Fiddler и инструменты прокси-сервера Charles, но это вне приложения, но это не сработает, потому что я не могу записать эти HTTP-вызовы в своем приложении.
Есть ли способ сделать это?
EDIT: я использую SDK Google Analytics и Facebook SDK в своем коде. Я хочу отслеживать все сетевые вызовы, которые эти SDK делают из моего приложения.
Ответы
Ответ 1
На неуправляемом телефоне вы можете использовать прокси-сервер android OS и перенаправить трафик. Но некоторые приложения не уважают его. Делает прямые соединения. Некоторая настройка может быть выполнена. Используйте Drony с режимом VPN, чтобы перенаправить весь трафик на SandroProxy. Вот видео, как захват, а затем трафик с SandroProxy SandroProxy с Chrome devtools SandroProxy также может захватывать файлы pcapfiles. Может также сделать ssl mitm на поток pcap. от поддержки SandroProxy
Ответ 2
Прокси-сервер Charles - хороший способ.
Другие включают, если приложение использует одноэлементный сетевой класс (который в идеале должен), сделать одну функцию для получения и одну для сообщения. Вызовите эти функции из своих классов и используйте log.d для вывода данных на консоли. Вы можете отслеживать запрос ответа или время.
Ответ 3
Если вы специально ищете свое приложение для записи HTTP-вызовов.
Библиотека Android Snooper может быть решением, которое вы ищете.
Ответ 4
Вы считали Стето?
http://facebook.github.io/stetho/
Вы можете отслеживать и изменять все входящие и исходящие запросы, между прочим.
Ответ 5
Если вы запускаете устройство или запускаете debug (adb), возможно, это поможет:
http://code.tutsplus.com/tutorials/analyzing-android-network-traffic--mobile-10663
Иначе я не думаю, что это возможно сделать то, что вы хотите сделать. Но вы можете контролировать общие сетевые вещи, например:
Для всех характеристик трафика см.:
https://developer.android.com/reference/android/net/TrafficStats.html (просто введите идентификатор пользователя вашего приложения)
Для мониторинга состояния сети:
https://developer.android.com/reference/android/net/ConnectivityManager.html
Ответ 6
https://github.com/jgilfelt/chuck/
он добавляет новое приложение, отправляющее уведомления при каждом сетевом запросе, и вы можете увидеть подробности запроса.
https://github.com/facebook/stetho
он позволяет вам использовать инструменты chrome dev для отслеживания ваших запросов, созданных в приложении Android. (среди других интересных функций)