Appcelerator Titanium: sviluppare app per Android e iPhone – Quarta Parte

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');
poi inviamo la richiesta (in questo caso di tipo GET) con il seguente metodo:
xhr.send();
Prima però di aprire la connessione utilizziamo altri due metodi:
  • 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.

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (Nessun voto ancora)
Loading...
You can leave a response, or trackback from your own site.

Leave a Reply

*