Как отслеживать HTTP (get, post и т. д.) запросы, которые мое приложение делает в android

в моем собственном приложении я использую различные сторонние SDK, которые делают сетевые вызовы (HTTP-запросы) в той или иной форме. Без редактирования этого кода можно ли писать код отдельно в приложении для перехвата всех запросов GET и POST, которые делает мое приложение?

Я хочу записать эти HTTP-вызовы в моем приложении

Я знаю об использовании Саша и Charles proxy tools но это вне приложения, но это не сработает, потому что я не могу записать эти HTTP-вызовы в моем приложении.

есть ли способ сделать это?

EDIT: я использую Google Analytics SDK и Facebook SDK в своем коде. Я хочу отслеживать все сетевые вызовы, которые эти SDK делают из моего приложения

6 ответов


на некорневом телефоне вы можете использовать прокси-сервер Android OS и перенаправлять трафик. Но некоторые приложения не уважают его. Устанавливает прямые связи. Некоторые настройки могут быть сделаны. Используйте Drony с режимом VPN для перенаправления всего трафика на SandroProxy. Вот видео как захватить затем трафик с SandroProxy SandroProxy с Chrome devtools SandroProxy также может захватывать pcapfiles. Может также сделать ssl mitm на потоке pcap. от поддержки SandroProxy


Charles proxy-хороший способ.

другие включают, если приложение использует одноэлементный сетевой класс (который он идеально должен), сделайте одну функцию для get и одну для post. Вызывать эти функции из классов и журналов.d вывод данных на консоль. Вы можете отслеживать ответ на запрос или время.


Если вы специально ищете приложение, чтобы иметь возможность записывать HTTP-вызовы. Android Snooper библиотека может быть решением, которое вы ищете.


вы рассматривали Stetho?

http://facebook.github.io/stetho/

вы можете контролировать и изменять все входящие и исходящие запросы, среди прочего.


https://github.com/jgilfelt/chuck/

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

https://github.com/facebook/stetho

Он позволяет использовать инструменты Chrome dev для мониторинга ваших запросов, созданных из приложения android. (среди других интересных функций)


Если вы корень устройства или работает над debug (adb), то, возможно, это поможет: http://code.tutsplus.com/tutorials/analyzing-android-network-traffic--mobile-10663

иначе я не думаю, что это возможно сделать то, что вы хотите сделать. Но вы можете отслеживать общие сетевые вещи, такие как:

для всей статистики трафика см.:
https://developer.android.com/reference/android/net/TrafficStats.html (просто передайте свои приложения пользователю id)

для сети мониторинга status:
https://developer.android.com/reference/android/net/ConnectivityManager.html