J'ai mis en place un service Web pour une application Android. Le service Web est exécuté sur mon hôte local (192.168.1.2). En utilisant l'émulateur Android, j'ai réussi à me connecter au service Web. J'ai essayé de connecter mon appareil Android en mode de débogage au service Web, mais cela n'a pas fonctionné. Ma question est donc la suivante: est-il possible de connecter un appareil Android à ce service Web exécuté sur mon hôte local (192.168.1.2) sans utiliser une adresse IP réelle?
Avez-vous déjà résolu votre problème? J'ai aussi un problème comme toi. Ce sont les étapes que j'ai déjà faites:
Vous pouvez maintenant accéder à votre application Webservice sur votre ordinateur à partir de votre téléphone portable.
chrome://inspect/#devices
localhost:61437
et je viens de le lier au port 8081 du périphérique. Rappelez-vous de cocher la case 'Activer le transfert de port'Eh bien votre hôte local est 127.0.0.1 (ou :: 1) et votre IP LAN est 192.168.1.2. Chaque ordinateur/périphérique connecté sous votre réseau local peut accéder à votre service Web sur IP 192.168.1.2
Votre appareil Android doit donc être connecté au même réseau local, par exemple via une connexion Wifi, pour pouvoir dialoguer avec 192.168.1.2.
Si vous ne pouvez pas connecter votre appareil Android au même réseau local, par exemple si vous n’avez qu’une connexion 3G, vous devez jouer avec votre routeur/pare-feu pour rediriger tout le trafic entrant (peut-être simplement le trafic http) de votre adresse IP publique vers votre adresse IP privée ( 192.168.1.2)
J'espère que cette aide
Je vais ajouter mon processus, car rien sur SO ne fonctionne pour moi. Voici les étapes que j'ai suivies pour connecter mon appareil physique Android au service Web exécuté sur mon ordinateur portable (connecté au téléphone) sur localhost:
Activer le débogage USB sur votre appareil Android
Exécutez votre service Web sur votre ordinateur. Mon service Web fonctionne sur localhost, port 3000 en développement: http://localhost:3000/api/...
Exécuter ifconfig
(Unix) ou ipconfig
(Windows)
inet
de votre ordinateur sur votre interface LAN. Le mien est 10.0.0.121 pour l'interface wlan0
. En externe, il s'agit de 68.43.XX.XXX, qui est non l'adresse que vous souhaitez utiliser.econnrefused
(connexion refusée) en raison de règles de pare-feuhttp://10.0.0.121:3000/api/...
Lorsque vous lancez votre application, vous devez vous connecter à votre service Web local sous forme de journaux, Wireshark, etc., et vous devez voir l'activité/les données souhaitées dans votre application Android.
J'ai eu les mêmes problèmes, beaucoup de recherches ont ensuite révélé que vous devez modifier explicitement les paramètres de votre pare-feu. Votre pare-feu bloque l'accès à votre code depuis une source externe. Donc, tout ce que vous avez à faire est d'aller dans les paramètres du pare-feu, d'ajouter le port 80 (dans mon cas, j'utilise Apache http Server) pour les communications entrantes et sortantes. Vous pouvez maintenant le tester sur le navigateur de votre téléphone http: //192.16.. **: 80 /
Je l'ai fait sur un Mac utilisant GasMask et Charles Proxy Server. Votre téléphone et votre ordinateur doivent être sur le même réseau.
par exemple, l’URL du service Web auquel vous voulez accéder se trouve à l’adresse http://api.xyz.com , vous utilisez d’abord GasMask pour pointer cette adresse vers votre hôte local, puis vous utilisez Charles pour configurer un serveur proxy. Ensuite, accédez aux paramètres de votre téléphone, accédez au Wi-Fi, appuyez longuement sur le réseau auquel vous êtes connecté, choisissez Modifier le réseau, puis entrez les paramètres de proxy que Charles vous a donnés.
Je suis d’accord avec les autres réponses, car c’est une bonne approche si vous ne souhaitez pas exposer votre service Web DEV sur Internet. Cependant, il est beaucoup plus facile de simplement exposer le service Web. Il existe un certain nombre de services DNS gratuits, mais j’ai trouvé que no-ip était le plus facile à configurer. Je l'utilise exactement pour le but que vous avez demandé; je peux donc tester avec mon service Web DEV sur un périphérique réel.
Si vous choisissez de ne pas utiliser d'adresse IP (je n'ai aucune affiliation avec cette société, c'est celle que j'ai utilisée et que je connais bien), vous pouvez obtenir une URL gratuite accessible au public, telle que http://MyExampleWebServer.no. -ip-org , et no-ip a un utilitaire que vous pouvez installer. Ainsi, même si vous êtes derrière une adresse IP dynamique, il conservera toujours la bonne adresse IP externe associée à cette URL. Si vous travaillez depuis votre domicile, vous devez simplement vous assurer que vous transférez le trafic du port 80 vers votre adresse IP interne 192.x.x.x (ou le port que vous utilisez, peut-être 443 pour SSL).
C'est aussi simple que cela, et vous pouvez maintenant accéder à ce service Web à partir de tout appareil pouvant accéder à Internet.
Je n'ai pas travaillé avec, mais je pense que dyndns propose également un service similaire.
Dans mon cas, aucune de ces solutions ne fonctionne car le pare-feu Windows le bloque, mais appliquer une règle au pare-feu n'a aucun effet.
Le problème dans mon cas est que mon ordinateur portable est connecté au Wifi et que Windows disposait de la connexion Wifi comme un réseau public. Je dois changer la connexion réseau au réseau privé. http://www.comofuncionatodo.net/tecnologia/informatica/como-cambiar-de-red-publica-a-red-privaden-en-windows-10/
Cette solution concerne le serveur de développement GAE dans Eclipse.
Étape 1: Obtenir l'adresse IP du réseau local
Allez dans votre console de commande Windows (appuyez sur Win + R, puis tapez "cmd"). Dans la console, entrez "ipconfig". Vous verrez une liste d’affichage. Sous Adaptateur LAN sans fil Wi-Fi, obtenez l'adresse IPv4. Ce sera quelque chose 192.168.x.x
IP du LAN: 192.168.x.x
Étape 2:
Allez à Eclipse, ouvrez le serveur configuré
Sous Propriétés de GAE Development Server -> Adresse de l'interface locale à laquelle vous souhaitez vous connecter, entrez l'adresse IP du réseau local, puis enregistrez.
Étape 3:
Maintenant, vous pouvez accéder au serveur GAE par
8888 - Fait référence au numéro de port, comme indiqué dans le serveur de développement GAE
Pour accéder aux services Web locaux en utilisant leurs propres hôtes de serveur plutôt que des adresses IP avec des ports, procédez comme suit:
Vous utilisez les services Web dans:
une. Un navigateur Web: configurez les paramètres de proxy de votre appareil Android à partir de Modifier les réseaux WiFi.
b. Application Android: Configurez le proxy pour votre client HTTP. Si vous utilisez Volley, jetez un œil à ceci: Volley derrière un serveur proxy .
Astuce: Si vous avez des codes de réponse 4xx, assurez-vous que votre service Web autorise les connexions à partir d'autres hôtes non locaux.