Liste des requêtes HTTP à partir d'un téléphone android
Ce que je veux, c'est être en mesure de voir les requêtes HTTP de mon Galaxy S4 produit. Je veux construire une application web et que vous souhaitez utiliser l'API qui est utilisé dans certaines applications. Je sais pour sûr qu'il y a une requête HTTP, et je veux capturer autant que possible, mais à tout le moins, l'URL.
Jusqu'à présent, j'ai essayé plusieurs choses:
-
Look for Android apps that capture HTTP requests
. Jusqu'à présent j'ai trouvé quelques applications qui peuvent soi-disant faire la chose dont j'ai besoin. Mais ils nécessitent tous l'accès à la racine, et je ne veux pas rooter mon téléphone. -
Look for Windows applications that tether my wifi signal, which means every request is ported through my computer.
Jusqu'à présent, j'ai essayé 1 demande,MyPublicWIFI
, et j'ai essayé d'utilisernetsh start hostednetwork
. L'application ne s'affiche pas tout de l'Url, et maintenant il n'a même pas partager mon signal wifi. Le hostednetwork j'ai essayé de mettre en place dans CMD ne pas partager la connexion wifi (j'ai activé cette option dans les propriétés).
J'ai besoin d'un moyen pour ce faire. Est-il possible que je peux obtenir l'Url par le portage de ces demandes par le biais de mon ordinateur?
Vous devez vous connecter pour publier un commentaire.
Charles Web Debugging Proxy vous permettra de faire ce que vous voulez. C'est un proxy HTTP de l'application qui s'exécute sur Windows, OS X et Linux.
Vous aurez besoin de votre téléphone et l'ordinateur pour être connectés au même réseau local, et d'ajuster votre téléphone dans les paramètres Wi-Fi pour utiliser un proxy, pointant à l'adresse IP de votre ordinateur avec le port 8888. Ensuite, tout le trafic web de votre téléphone via votre ordinateur et être visible dans Charles.
Vous serez en mesure de voir les détails complets de toutes les requêtes et réponses HTTP (URL, en-têtes, corps, etc.), la seule limite étant le trafic chiffré, mais en installant le Charles certificat SSL sur votre téléphone, vous pouvez accéder à ce que bien.
Puisque c'est juste un proxy HTTP, il n'a pas besoin d'un dispositif enracinée.
Le seul inconvénient que je vois c'est que c'est une licence de logiciel ($50US pour une licence mono-utilisateur), mais la "essai gratuit" n'a pas de date d'expiration - l'application ferme simplement après avoir été ouverts pendant 30 minutes, si je me souviens bien.
Pour la plupart des appareils Android 4.0 (vers le haut je suppose), le proxy peut être définie comme ceci:
J'ai enfin compris, et a obtenu l'API qui m'intéressait. Il est fait en quelques étapes simples: d'Attache de votre connexion internet de votre téléphone, Connectez votre téléphone à votre nouvellement créé sans fil ad-hoc network, faire de capture wireshark vos demandes.
Pour la connexion, vous devez configurer un réseau sans fil de sorte que votre téléphone peut se connecter à elle. Pour ce faire, utilisez
CMD
, et afficher les connexions réseau dans windows. Vous pourriez aussi avoir à ouvrir le gestionnaire de périphériques pour troubleshouting. Je vais vous courir à travers elle, étape par étape1- Start CMD en mode Administrateur afin qu'il dispose de toutes les autorisations nécessaires. Ensuite, tapez le code suivant (en essayant de démarrer notre hostednetwork):
si cela fonctionne, passez à l'étape 2. Sinon, vous avez un dépannage à faire. Malheureusement, il n'existe pas de moyen facile de le faire. Première vue de votre networkconnections, et de trouver votre wifi, clic droit et le désactiver. Ensuite, allez à le gestionnaire de périphériques, sur la tête de cartes réseau, et désinstaller le tout avec virtuel en elle, ce sont des hôtes virtuels, ce qui rend votre CMD demandes d'échouer. Vous pouvez activer votre wifi nouveau. Maintenant, attendez quelques minutes, puis essayez de la première partie de nouveau. Si cela ne fonctionne toujours pas, redémarrez votre pc, et répétez cette étape. Il semble comme une corvée, et c'est, mais c'est le seul moyen que j'ai trouvé pour le faire.
2- afficher votre connexions réseau et un clic droit dessus, choisissez propriétés. Maintenant, sur la tête de la onglet partage, activer le partage de votre connexion avec les autres. Maintenant, regardez pour les réseaux wi-fi sur votre téléphone et sélectionnez le nom de votre réseau et tapez votre mot de passe. (se connecter à internet avec votre téléphone):
Vous devriez être en mesure de naviguer sur internet avec votre téléphone maintenant. Si pas, je ne sais pas quoi faire. Essayez un navigateur tout d'abord pour vérifier votre connexion internet parce que certaines applications sont bloqués dans ce cadre. C'est pour des raisons de sécurité (vous ne voudriez pas que quelqu'un raid sur votre application bancaire).
3- Télécharger wireshark, l'installer, le lancer la capture. Maintenant, faites la demande que vous voulez tracer sur votre téléphone. Puis arrêter la capture. Vous pouvez maintenant cliquer sur le protocole, à organiser toutes les demandes, il vous suffit de vérifier le protocole HTTP. Vous pouvez voir l'url sur la droite. (vérification de la requête HTTP)
Résumé: Nous avons fait notre téléphone se connecte à l'ordinateur pour l'utilisation de l'internet. Le PC fait de toutes les requêtes vers des serveurs externes et envoie les résultats au téléphone. Les demandes faites par le pc (donc à la fois pour le pc lui-même et le téléphone) peuvent être consultés par wireshark.
En FAIT . . .
en utilisant le câble USB inverse attache à fournir réseau de téléphone et l'exécution de wireshark sur pc est probablement le moyen le plus facile pour ce faire.
Voir ici:
http://foldingair.blogspot.ie/2013/11/debug-your-android-applications-by.html
J'ai ajouté une autre réponse, car je pense que c'est le plus simple et peut-être le plus de réponse directe à cette question. Pas besoin pour l'enracinement de téléphone/routeur ou de l'installation de procurations.
Veuillez noter que je n'ai pas essayé (comme je l'ai combinaison de enraciné prones ou d'accès à la capture à partir d'un routeur de réseau) cependant, il semble comme une bonne méthode. La prochaine fois, je me retrouve à la racine de/routeur-moins je serai en train de l'essayer. Instructions pour windows semblent plus faciles que ceux pour linux.
Il serait plus facile à utiliser http://www.wireshark.org/ et/ou http://www.tcpdump.org/ pour la capture de paquets, soit sur le téléphone (mais besoin d'un téléphone enracinée) OU sur le point où votre téléphone se connecte au réseau.
De Capture en utilisant un proxy
Le proxy comme suggéré dans la Réponse "obtenir un ordinateur avec deux cartes d'interface réseau" si vous avez un PC avec deux cartes réseau. Rendre le PC d'un proxy entre internet et sans fil, le téléphone se connecte. Exécuter wireshark.
De Capture sur le routeur
Vous pouvez également capturer des paquets sur le routeur wi-fi directement. Avez-vous le contrôle de routeur? N'routeur déjà une journalisation des capacités de surveillance? Pouvez-vous installer openwrt et de faire de la capture de paquets à l'aide de tcpdump à ce point? Sans doute la même quantité de travail qu'est l'enracinement de votre téléphone.
De Capture sur le téléphone
Les téléphones rootés pouvez exécuter l'outil tcpdump. Et avec les téléphones rootés, vous pouvez également rediriger les requêtes par l'ajout d'hôtes entrée dans /etc/hosts ou par iptables de réécriture d'adresses ip et de ports.
Pouvez-vous rendre visite à un ami du réseau où ils ont déjà capturer le trafic et vous permettrait de prendre un fichier de capture?
L'une des solutions précédentes sont plus propres. Vous pourriez peut-être faire quelque chose hacky avec serveur DNS proxy et proxy http si vous ne pouvez pas racine de téléphone/routeur et n'ont pas de rechange, carte réseau et routeur sans fil. Je ne recommanderais pas la peine de le faire, mais je pense qu'il serait possible de:
En avant toutes les requêtes sur le à un régulière serveur DNS.
Vous devriez être capable de voir les hôtes qui sont regardé votre serveur DNS.
obtenir un ordinateur avec deux cartes réseau, de configurer internet sur un côté et le raccordement d'un WAN du routeur (ou tout simplement LAN) sur l'autre si vous le faites à droite, activez le partage de connexion internet et utiliser une application appelée wireshark. Je suppose que si vous souhaitez afficher les requêtes HTTP, vous êtes à la technique assez de cette série 🙂
cela aidera avec HTTP, mais pas en HTTPS.
pour HTTPS, vous devrez mettre en place un proxy transparent et faire un peu de certificat de manipulation, je n'ai jamais réussi à faire moi-même mais je sais que c'est possible.