Share via


Connessione a servizi Web (HTML)

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Questi argomenti illustrano vari metodi per connettere un servizio Web in un'app di Windows Runtime tramite JavaScript. Il metodo consigliato consiste nell'usare Windows.Web.Http.HttpClient, una nuova classe di Windows Runtime disponibile per tutti i linguaggi. Si tratta dell'API più efficiente e ricca di funzionalità che un'app possa usare per accedere a un servizio Web.

Le classi nello spazio dei nomi Windows.Web.Http offrono un'interfaccia di programmazione per le app client HTTP moderne. Lo spazio dei nomi Windows.Web.Http e gli spazi dei nomi correlati Windows.Web.Http.Headerse Windows.Web.Http.Filters forniscono componenti client HTTP che consentono agli utenti di eseguire richieste HTTP e ricevere risposte HTTP da servizi Web moderni tramite HTTP.

Per le operazioni di richiesta HTTP di base, Windows.Web.Http.HttpClient prevede una semplice interfaccia per gestire le attività più comuni e offre impostazioni predefinite sensate per l'autenticazione (AUTH) applicabili alla maggior parte degli scenari. Per le operazioni HTTP più complesse sono disponibili molte altre funzionalità.

Gli argomenti di questa sezione presentano anche una libreria Windows per un wrapper JavaScript per XMLHttpRequest denominato WinJS.xhr. WinJS.xhr semplifica l'accesso ai contenuti Web nella tua app. Puoi usare WinJS.xhr per eseguire richieste HTTP o HTTPS per scaricare o caricare contenuto e file in qualsiasi formato.

A differenza di XMLHttpRequest, in cui è possibile specificare se la richiesta deve essere effettuata in modo asincrono, WinJS.xhr è sempre asincrono. WinJS.xhr restituisce WinJS.Promise, che ti consente di gestire richieste completate, errori e richieste in corso usando il modello Promise con i metodi then o done.

Avviso  Ora è possibile usare XMLHttpRequest per trasferire oggetti di dimensioni molto grandi, ad esempio oggetti Blob e FormData, il cui completamento può richiedere molto tempo. È possibile usare Windows.Web.Http.HttpClient anche per inviare o ricevere oggetti estremamente grandi, flussi inclusi. Dato che un'app può essere terminata in qualsiasi momento, per eseguire queste operazioni ti consigliamo di prendere in considerazione l'uso del trasferimento in background nello spazio dei nomi Windows.Networking.BackgroundTransfer. Per altre info sul caricamento e il download di contenuti di grandi dimensioni, vedi Come caricare un file e Trasferimento di dati in background.

 

Nella tabella seguente sono elencate le API utilizzabili per accedere a un servizio Web da app scritte in JavaScript. Nella colonna Piattaforma è indicata la versione di Windows in cui la funzionalità è stata aggiunta per la prima volta.

API Piattaforma Commenti

Windows.Web.Http.HttpClient

Windows 8.1, Windows Phone 8.1, Windows Server 2012 R2

Metodo consigliato per connettersi a un server HTTP per l'invio e la ricezione di dati.

Questa funzionalità è supportata anche nelle app scritte in JavaScript, C#, Visual Basic e C++

WinJS.xhr Windows 8, Windows Phone 8.1, Windows Server 2012,

In Windows 8 e Windows Server 2012 questo è il metodo consigliato nei casi in cui XMLHttpRequest non è appropriato.

XMLHttpRequest Windows 8, Windows Phone 8.1, Windows Server 2012 Questo oggetto e l'API sono disponibili nelle implementazioni JavaScript nella maggior parte dei Web browser moderni.

 

Pubblico di sviluppatori

Sviluppatori che usano JavaScript e HTML e sono interessati alla creazione di app che si connettono a un servizio Web.

Le informazioni di questo argomento si applicano alle app scritte in JavaScript e HTML.

Per altre informazioni su come connettersi a un servizio Web per app scritte in C++/XAML e app che usano .NET Framework 4.5 e scritte in C# o Visual Basic, vedi Connessione a servizi Web (XAML).

Contenuto della sezione

Argomento Descrizione

Come stabilire una connessione a server HTTP tramite Windows.Web.Http

Inviare una richiesta GET a un servizio Web e recuperare la risposta utilizzando la classe Windows.Web.Http.HttpClient nello spazio dei nomi Windows.Web.Http.

Come richiedere una connessione HTTPS

Con il valore dell'elemento "ms-https-connections-only" meta è possibile impedire all'app di usare connessioni HTTP per la navigazione o altri tipi di recupero di contenuto Web non multimediale. Quando per l'elemento meta imposti l'attributo content su "true", la navigazione HTTP e il recupero di contenuto Web non multimediale non funzionano.

Come scaricare un file con WinJS.xhr

WinJS.xhr semplifica l'accesso ai contenuti Web nella tua app. Questo argomento illustra come scaricare un file mediante WinJS.xhr, gestire gli eventuali errori e segnalare lo stato del download. Spiega inoltre come scaricare tipi diversi di contenuto.

Come caricare dati binari con WinJS.xhr

Puoi caricare e scaricare dati binari tramite WinJS.xhr (che esegue il wrapping di XMLHttpRequest). Questo esempio mostra come caricare una bitmap dalle tue immagini. Il metodo di Windows Runtime usato per aprire il file bitmap restituisce un IRandomAccessStream, pertanto devi usare MSApp.createBlobFromRandomAccessStream per convertirlo in un Blob.

Avviso  Puoi ora usare XMLHttpRequest per caricare o scaricare oggetti di diversi MB, come gli oggetti Blob e FormData, il cui completamento può richiedere molto tempo. Poiché le app possono essere terminate in qualsiasi momento, per eseguire queste operazioni ti consigliamo di usare le API di trasferimento in background di Windows Runtime. Per altre informazioni sul caricamento e il download di contenuto, vedi Guida introduttiva: Caricamento di un file e Guida Come scaricare un file. Per una discussione generale del trasferimento in background, vedi Transferring data in the background.
 

Come assicurare che WinJS.xhr invii di nuovo le richieste

Quando richiedi risorse Web usando WinJS.xhr, è possibile che la risposta venga memorizzata nella cache, per cui le richieste successive restituiranno la versione della risorsa già esistente sul client, invece di inviare nuovamente la richiesta. Tuttavia, puoi aggiungere un'intestazione HTTP che garantisca il nuovo invio della richiesta, anche se è già stata memorizzata nella cache.

Impostazione di valori di timeout con WinJS.xhr o HttpClient

Quando usi XMLHttpRequest puoi impostare valori di timeout direttamente. Questa operazione non è invece consentita con Windows.Web.Http.HttpClient o WinJS.xhr. Puoi tuttavia impostare timeout sugli oggetti WinJS.Promise. Chiamando WinJS.Promise.timeout, puoi assicurarti che la richiesta venga annullata se non viene completata entro l'intervallo specificato.

Come creare un mashup (applicazione Web ibrida) con WinJS.xhr

Un mashup è un'applicazione Web che usa dati da due o più origini per creare qualcosa di nuovo. L'esempio mostra come usare XMLHttpRequest (XHR) per recuperare e visualizzare un feed rss remoto.

 

Argomenti correlati

Altre risorse

Dichiarazioni di funzionalità delle app

Gestione di eccezioni nelle app di rete

Come configurare le funzionalità di isolamento della rete

Come abilitare il loopback ed eseguire il debug dell'isolamento di rete

Riferimenti

Windows.Foundation.Uri

Windows.Web.Http

Windows.Web.Http.Filters

Windows.Web.Http.Headers

Windows.Web.Http.HttpClient

WinJS.xhr

XMLHttpRequest

Esempi

Esempio di HttpClient

Esempio di integrazione di contenuto e controlli da servizi Web

Uso di un blob per salvare e caricare un esempio di contenuto

Esempio di autenticazione Web

XHR, gestione degli errori di navigazione ed esempio di schemi URL