web-dev-qa-db-fra.com

Comment surveiller les requêtes HTTP (get, post, etc.) que mon application effectue en android

Dans ma propre application, j'utilise divers SDK tiers qui effectuent des appels réseau (requêtes HTTP) sous une forme ou une autre. Sans modifier ce code, puis-je écrire du code séparément dans l'application pour intercepter toutes les requêtes GET et POST que mon application effectue?

Je souhaite enregistrer ces appels HTTP dans mon application

Je suis conscient de l'utilisation de Fiddler et Charles proxy tools mais cela est en dehors de l'application mais cela ne fonctionnera pas car je ne peux pas enregistrer ces appels HTTP dans mon application.

Y a-t-il un moyen de le faire?

EDIT: J'utilise le SDK Google Analytics et le SDK Facebook dans mon code. Je souhaite surveiller tous les appels réseau que ces SDK effectuent depuis mon application

24
atmaish

Sur un téléphone non rooté, vous pouvez utiliser Android proxy OS et rediriger le trafic. Mais certaines applications ne le respectent pas. Établit des connexions directes. Certains ajustements peuvent être effectués. Utilisez Drony avec le mode VPN pour rediriger tous trafic vers SandroProxy. Voici une vidéo comment capturer puis gérer le trafic avec SandroProxy SandroProxy avec Chrome devtools SandroProxy peut également capturer des fichiers pcap. Peut également faire ssl mitm sur le flux pcap. à partir de SandroProxy soutien

7

Charles proxy est un bon moyen.

D'autres incluent si l'application utilise la classe de réseau singleton (ce qu'elle devrait idéalement), créer une fonction pour get et une pour post. Appelez ces fonctions à partir de vos classes et utilisez log.d pour générer des données sur la console. Vous pouvez suivre la réponse à la demande ou le temps nécessaire.

3
blockwala

Si vous recherchez spécifiquement que votre application soit capable d'enregistrer les appels HTTP. Android Snooper la bibliothèque peut être la solution que vous recherchez.

2
Prateek Jain

Avez-vous pensé à Stetho?

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

Vous pouvez surveiller et modifier toutes les demandes entrantes et sortantes, entre autres.

2
FrostRocket

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

il ajoute une nouvelle application qui envoie des notifications chaque fois qu'une demande réseau est effectuée, et vous pouvez voir les détails de la demande.

https://github.com/facebook/stetho

il vous permet d'utiliser les outils de développement chrome pour surveiller vos demandes créées à partir d'une application Android. (parmi d'autres fonctionnalités intéressantes)

1
Matias Elorriaga

Si vous rootez l'appareil ou utilisez le débogage (adb), cela peut peut-être aider: http://code.tutsplus.com/tutorials/analyzing-Android-network-traffic--mobile-1066

Sinon, je ne pense pas qu'il soit possible de faire ce que vous voulez faire. Mais vous pouvez surveiller des éléments généraux du réseau comme:

Pour toutes les statistiques de trafic, voir:
https://developer.Android.com/reference/Android/net/TrafficStats.html (il suffit de saisir l'ID utilisateur de votre application)

Pour surveiller l'état du réseau:
https://developer.Android.com/reference/Android/net/ConnectivityManager.html

0
Steven Mark Ford