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
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
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.
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.
Avez-vous pensé à Stetho?
http://facebook.github.io/stetho/
Vous pouvez surveiller et modifier toutes les demandes entrantes et sortantes, entre autres.
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)
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