Para poder comunicarnos con nuestro servidor remoto (backend) utilizando React Native, tendremos que realizar una llamada asíncrona.
En este ejemplo, voy a enviar datos en un objeto FORM utilizando el método fetch de Javascript.
//Headers, si queremos añadir un token, tendremos que añadirlo en estas cabeceras. var myHeaders = new Headers(); myHeaders.append("Content-Type", "application/x-www-form-urlencoded"); //parametros a pasar var urlencoded = new URLSearchParams(); urlencoded.append("nombre", nombre); urlencoded.append("email", email); //Objeto request var requestOptions = { method: 'POST', headers: myHeaders, body: urlencoded }; //Url y objeto request para crear fetch fetch("https://www.urlmiweb.com/post_con_form", requestOptions) .then(response => response.text()) .then(result => console.log(result) ) .catch(error => console.log('error', error));
Primero creamos los headers
var myHead
ers = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
En este caso indicamos que vamos a enviar un FORM (cómo los formularios web).
Después añadimos los parámetros en nuestro FORM:
var urlencoded = new URLSearchParams();
urlencoded.append("nombre", nombre);
urlencoded.append("email", email);
Ahora, creamos un objeto con todos los atributos de la llamada, indicando tipo POST, los haders que hemos creado antes, el body con el objeto FORM que hemos rellenado:
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: urlencoded,
redirect: 'follow'
};
Se crea la llamada con el método fecth de JavaScript, se añade la URL y se añaden las opciones:
fetch("https://www.urlmiweb.com/post_con_form", requestOptions)
Dentro de la llamada fetch tenemos distintas partes, si la llamada va bien, se invoca a este método:
.then(result =>
console.log(result)
)
De forma asíncrona podemos ejecutar lo que añadamos dentro de result => (por ejemplo otra función) y la respuesta del servidor se guarda en la variable result.
Si la llamada va mal, se invoca el método error:
.catch(error => console.log('error', error));
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.