In questo articolo vedremo i servizi offerti dalle API Titanium.Network per poter inviare richieste ad un server HTTP o HTTPS, utilizzando l'oggetto XMLHttpRequest. Le API inoltre includono la Classe TCPSocket con la quale creare un socket in ascolto sul device oppure di contattare un server remoto e le classi BonjourService e BonjourBrowser per poter interagire con il servizio Bonjour di Apple (ovviamente solo per iPhone).8fe7ec1d0b644338911767839d00e506
In questo articolo vedremo i servizi offerti dalle API Titanium.Network per poter inviare richieste ad un server HTTP o HTTPS, utilizzando l’oggetto XMLHttpRequest. Le API inoltre includono la Classe TCPSocket con la quale creare un socket in ascolto sul device oppure di contattare un server remoto e le classi BonjourService e BonjourBrowser per poter interagire con il servizio Bonjour di Apple (ovviamente solo per iPhone).
Per creare un client HTTP utilizziamo il metodo createHTTPClient:
var xhr = Titanium.Network.createHTTPClient();
Ottenuto l’oggetto HTTPClient inviamo la richiesta al Server in due passi, prima apriamo ed inizializziamo la connessione:
xhr.open('GET','http://www.appuntisoftware.it');
xhr.send();
- onload: questa funzione verrà chiamata se la richiesta di connessione è andata a buon fine;
- onerror:questa funzione verrà chiamata se la richiesta di connessione non è andata a buon fine.
Otteniamo quindi il seguente codice:
var xhr = Titanium.Network.createHTTPClient(); xhr.onload = function() { Titanium.API.info('Status Code ' + this.status); }; xhr.onerror = function(e) { Titanium.API.info('Status Code ' + this.status); }; // open the client xhr.open('GET','http://www.appuntisoftware.it'); // send the data xhr.send();
nella variabile status avremo l’ HTTP Status Code ritornato dal server (200 in caso si successo).
Vi sono altre proprietà utili quali:
- connectionType: contiene il tipo di connessione stabilita, GET o POST;
- location: ritorna l’URL assoluta del server contattato;
- readyState: ritorna il valore dell’attributo readyState dell’oggetto XMLHTTPRequest (0 valore iniziale, 1 quando viene chiamato il metodo Open, 2 quando viene chiamata la send ma ancora nessun dato è stato ricevuto, 3 quando vengono ricevuti i dati, 4 quando il trasferimento dati è stato completato);
- connected: che sarà true se la connessione è stata stabilita, da notare che una volta completato il trasferimento dati (readyState =4) il valore ritorna a false;
- responseText: contiene la risposta inviata dal Server in forma testuale, nel nostro esempio la pagina HTML del sito;
- responseXML: contiene la risposta XML inviata dal Server se disponibile altrimenti torna null;
Possiamo inoltre inviare dei parametri al server utilizzando sia i metodi GET e POST oppure come query string direttamente all’interno della URL, facciamo alcuni esempi utilizzando un servizio che mette a disposizione la stessa Appcelerator, il quale ritorna il numero di caratteri della stringa (o più stringhe separate) inviata come parametro:
xhr.open("GET","http://api.appcelerator.net/p/v1/echo"); xhr.send({"a":"ciao"});
con questo codice inviamo una richiesta GET inserendo come parametro l’attributo “a” valorizzato col valore “ciao” e otterremo una risposta del tipo:
array(1){[“a”]=>string(4) “ciao”}
se vogliamo invece inviare una richiesta col metodo POST basta sostituire il GET con appunto il valore POST all’interno della open:
xhr.open("POST","http://api.appcelerator.net/p/v1/echo"); xhr.send({"a":"ciao", "b":"mondo"});
in questo esempio abbiamo inviato due parametri col metodo POST.
Infine possiamo semplicemente inviare dei parametri come query string all’interno della URL direttamente utilizzando il metodo Open:
xhr.open("GET","http://api.appcelerator.net/p/v1/echo?a=ciaomondo"); xhr.send();
ovviamente la richiesta sarà di tipo GET.
COMMENTS