No se puede conectar a localhost API de Android App

Mazharul Islam:

Soy nuevo en Django. He creado una API llamada http://127.0.0.1:8000/api/update/1/y funciona perfectamente en el navegador y en la aplicación del cartero.

Sin embargo, cuando estoy tratando de acceder a la API de la aplicación para Android se está volviendo NULL.

El código de Android funciona cuando la API es la siguiente.

http://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey=8190df9eb51445228e397e4185311a66

Sin embargo, no funciona cuando la API es el siguiente, incluso si la siguiente API funciona muy bien de mi navegador que se ejecuta en el mismo ordenador y de la aplicación del cartero.

http://127.0.0.1:8000/api/update/1/

Te adjunto el código donde se hace llamada a la API.

protected String doInBackground(String... args) {
    String xml = "";
    String api = "http://127.0.0.1:8000/api/update/1/"; // returns NULL works in Postman app and in the browser
    // String api = "http://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey=8190df9eb51445228e397e4185311a66"; // works in all places
    String urlParameters = "";
    xml = Function.excuteGet(api, urlParameters);
    return  xml;
}

Puede alguien ayudarme con esto? Gracias por adelantado.

Reaz Murshed:

Si está probando su aplicación desde un dispositivo Android real, entonces hay que poner la dirección IP de su PC mientras está intentando conectarse al servidor de Django través de las API. Y sí, tiene que estar en la misma red también. Así que hay que comprobar las siguientes cosas.

  1. Asegúrese de que el PC (donde se está ejecutando el servidor) y el dispositivo Android (donde se está probando su aplicación) están en la misma red (conectada con la misma red Wifi tal vez).
  2. Asegúrese de que se está conectando a la dirección IP de su ordenador donde se ejecuta el servidor. Por ejemplo, en este momento, la dirección IP de su PC es 192.168.0.100. Entonces, es necesario conectarse a esta dirección IP y llame a su API como la siguiente.

    http://192.168.0.100:8000/api/update/1/
    
  3. Asegúrese de que usted está aceptando solicitudes al puerto 8000en su PC. Compruebe la configuración del servidor de seguridad si bloquea todas las solicitudes entrantes al 8000puerto. Si se comprueba el bloqueo, a continuación, por favor permita una solicitud entrante al 8000puerto mediante el siguiente.

    sudo ufw allow 8000/tcp
    

Si no hay nada que te está ayudando, a continuación, compruebe el código de Android para comprobar si la llamada API está bien. Yo recomendaría encarecidamente el uso del voleo de llamadas a la API que se sugieren en los desarrolladores de documentación.

Por último, pero no menos importante, por favor, compruebe si tiene el permiso necesario en su AndroidManifest.xmlarchivo. Es necesario añadir el siguiente permiso para conceder la aplicación para utilizar internet.

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=214035&siteId=1
Recomendado
Clasificación