Comment puis-je accéder à mon local de l'api REST de mon appareil android?
J'ai un printemps api REST tourne en local sur mon ordinateur. Je voudrais utiliser cette api pour le développement android.
Voici ma requête get:
public static String sendGet(final String url) {
StringBuilder result = new StringBuilder();
HttpURLConnection urlConnection = null;
try {
String apiUrl = getAbsoluteUrl(url); //concatenate uri with base url eg: localhost:8080/+ uri
URL requestUrl = new URL(apiUrl);
urlConnection = (HttpURLConnection) requestUrl.openConnection();
urlConnection.connect(); //no connection is made
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
urlConnection.disconnect();
}
return result.toString();
}
Je peux accéder à mon api via mon navigateur du périphérique. Cependant, lorsque j'utilise ce même url à l'intérieur de la construit apk pour faire la demande, aucune connexion n'est faite.
Mon manifeste comprend:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Notes:
Je connecte mon appareil à mon ordinateur portable de l'exécution de l'api rest via le port usb.
Je suis en utilisant le WLAN adresse IPv4 trouvé en appelant la commande ipconfig.
Des astuces dans la bonne direction serait très apprécié merci!
Modifier pour inclure le navigateur google chrome (sur un appareil android) de sortie de la locale de l'api REST en cours d'exécution sur mon ordinateur portable (UN OBTENIR une demande de retour par défaut de l'utilisateur invité de l'information):
localhost:8080
à partir de la navigateur android? Probablement pas. localhost
signifie des choses différentes sur tous les appareils.essayez de vous connecter à votre appareil via localhost case thisaccéder à vos fichiers et d'analyser
Je peux accéder à mon WLAN adresse IPv4 + URI à partir de mon navigateur android. J'ai une api comme suit:
/api/les utilisateurs qui renvoie tous les utilisateurs avec une requête get. Je peux voir la sortie JSON dans mon android navigateur google chrome. Mais quand je fais cet appel dans mon appareil android apk construire, je n'ai pas une connexion.
OriginalL'auteur Dayna | 2016-12-17
Vous devez vous connecter pour publier un commentaire.
Vérifier votre adresse ip:-
Suit pour vérifier l'ip (assurez-vous que vous êtes connecté à internet)
Maintenant faire de votre url, comme ceci:
http://192.168.240.2/index.html
OriginalL'auteur Mrinmoy
Permettez-moi de vous dire un moyen plus facile de le faire. Si vous utilisez l'émulateur Android, vous pouvez utiliser 10.0.2.2 que l'adresse IP pour se connecter à la machine hôte sur laquelle votre API REST est disponible.
De même, si vous utilisez Genymotion qui utilise Oracle Virtualbox, vous pouvez utiliser 10.0.3.2.
êtes-vous à l'aide émulateur android?? u peut vérifier les et laissez-moi savoir les détails de l'émulateur. paramètres->a propos du téléphone->état->adresse IP
J'ai été incapable de trouver les paramètres-->à propos du téléphone etc.. donc j'ai couru
adb shell
ifconfig
: 10.0.2.15sur votre émulateur navigateur, pouvez-vous essayer 10.0.2.2:8080 ?
Je reçois une réponse positive de ma demande quand je l'appelle mon api via l'émulateur navigateur.
OriginalL'auteur rakesh kashyap
Votre reste de l'url doit être quelque chose comme ceci -
http://localhost:8080/yourRest/restMethod
.Au lieu de localhost url connecter votre mobile et locale de la machine sur le même réseau(réseau wifi). Obtenir l'adresse ip de votre machine locale e.g 192.168.1.X ...alors maintenant, votre point de fin de l'url pour le reste sera
http://192.168.1.X:8080/yourRest/restMethod
OriginalL'auteur Shadow Droid
J'ai réussi à résoudre ce problème en étendant la classe de mon origine
sendGet(final String url)
était comme suitHttpClientUsage extends AsyncTask<String, Void, String>
plus d'informations et un tutoriel peut être trouvé ici: AsyncTask tutorielJ'ai eu ensuite pour configurer mes paramètres de la SCRO sur mon local API REST comme suit:
Merci à vous tous pour votre aide, c'est très apprécié.
OriginalL'auteur Dayna