Aumentare la velocità delle chiamate REST con la compressione GZip in Windows Phone

Molte delle applicazioni Windows Phone fanno l'uso della rete per accedere a risorse remote esposte tramite servizi REST o SOAP. Con essi le chiamate e la risposte passano in forma testuale, in XML o in JSON, e se di grosse dimensioni possono influire sulla velocità delle risposte, che può essere critica su dispositivi mobili.

Per dare il massimo dell'esperienza all'utente, è sempre quindi consigliabile ridurre al minimo di dati che devono transitare, ma oltre a questo c'è un'opzione subito sfruttabile che dà ottimi risultati: la compressione GZip. Il protocollo HTTP prevede, infatti, che si possa aggiungere tra gli header della richiesta uno di nome Accept-Encoding specificando GZip e/o Deflate (tra i più usati) come possibili algoritmi di compressione della risposta. Se il server lo supporta risponderà comprimendo la risposta e specificando l'header Encoding.

E' possibile facilmente supportare questo header anche nelle applicazioni Windows Phone, preparando a dovere la classe WebClient o HttpWebRequest e facendo uso di librerie come DotNetZip per la parte di decompressione. E' ancora più facile se si sfrutta una libreria che gestisce automaticamente le richieste, come SharpGIS.GZipWebClient. Poiché è disponibile con NuGet è sufficiente cercare tale libreria e installarla; una volta fatto è possibile utilizzare la classe SharpGIS.GZipWebClient in luogo di WebClient, oppure effettuare la seguente registrazione allo startup dell'applicazione:

WebRequest.RegisterPrefix("http://", SharpGIS.WebRequestCreator.GZip);
WebRequest.RegisterPrefix("https://", SharpGIS.WebRequestCreator.GZip);

Automaticamente tutte le richieste verranno compresse e, soprattutto con contenuti testuali, si guadagnerà moltissimo nel traffico dati che deve transitare, anche fino all'80%.

Link a NuGet
http://nuget.org/packages/SharpGIS.GZipWebClient
Algoritmi di compressione in .NET
http://dotnetzip.codeplex.com/

Commenti

Visualizza/aggiungi commenti

Aumentare la velocità delle chiamate REST con la compressione GZip in Windows Phone (#67)
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi