Estoy desarrollando una aplicación móvil con React Native y tengo una API REST en Django en el backend. Quiero hacer una solicitud POST desde la aplicación a mi API.
Código
function sendDpi() { const requestOptions = { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ dpi: imageDpi, }), }; fetch('http://127.0.0.1:8000/', requestOptions) .then(response => response.json()) .then(data => console.log(data)) .catch(error => { console.log(error); }); }
Cuando mi aplicación llama a sendDpi()
, obtengo [TypeError: Network request failed]
.
127.0.0.1:8000
es donde se ejecuta mi aplicación Django. También intenté usar mi dirección IP (como se indica en esta respuesta).
También modifiqué android/app/src/main/AndroidManifest.xml
para incluir android:usesCleartextTraffic="true"
.
Creo que 127.0.0.1:8000
también es localhost. Debe encontrar su dirección IP externa si usa un dispositivo físico para realizar la prueba.
Si prueba desde el emulador de Android, puede usar http://10.0.2.2/8000 .
También intente hacer que funcione con http primero. Es posible que no tenga un certificado SSL válido. Con un certificado SSL no válido, también obtiene [TypeError: Network request failed]
La sugerencia hecha antes fue excelente, excepto que la URL necesaria debería ser http://10.0.2.2:8000
en lugar de http://10.0.2.2/8000