Windows.Web.Http Spazio dei nomi
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce un'API client HTTP moderna per l'app UWP.
Classi
HttpBufferContent |
Fornisce contenuto HTTP che usa un buffer. |
HttpClient |
Invia richieste HTTP e riceve risposte HTTP da una risorsa identificata da un URI. Per indicazioni sulla programmazione per la classe HttpClient ed esempi di codice, vedere l'argomento concettuale HttpClient . |
HttpCookie |
Fornisce un set di proprietà e metodi per gestire un cookie HTTP. |
HttpCookieCollection |
Fornisce un contenitore di raccolta per le istanze della classe HttpCookie . |
HttpCookieManager |
Aggiungere o eliminare un httpCookie o visualizzare i cookie associati a un'app. |
HttpFormUrlEncodedContent |
Fornisce contenuto HTTP che usa i dati name/value codificati con il tipo MIME application/x-www-form-urlencoded MIME. |
HttpGetBufferResult |
Combina il risultato finale del buffer insieme al seguente: la richiesta HTTP originale, la risposta HTTP risultante (se presente), un valore di errore esteso e un'indicazione riuscita. |
HttpGetInputStreamResult |
Combina il risultato finale del flusso di input insieme a quanto segue: la richiesta HTTP originale, la risposta HTTP risultante (se presente), un valore di errore esteso e un'indicazione riuscita. |
HttpGetStringResult |
Combina il risultato della stringa finale insieme alla seguente: la richiesta HTTP originale, la risposta HTTP risultante (se presente), un valore di errore esteso e un'indicazione riuscita. |
HttpMethod |
Recupera metodi HTTP standard, ad esempio GET e POST e crea nuovi metodi HTTP. |
HttpMultipartContent |
Fornisce contenuto HTTP che usa il tipo MIME multipart/*. |
HttpMultipartFormDataContent |
Fornisce contenuto HTTP che usa il tipo MIME multipart/form-data . |
HttpRequestMessage |
Rappresenta un messaggio di richiesta HTTP, incluse le intestazioni. |
HttpRequestResult |
Combina la richiesta HTTP originale insieme alla seguente: la risposta HTTP risultante (se presente), un valore di errore esteso e un'indicazione riuscita. |
HttpResponseMessage |
Rappresenta un messaggio di risposta HTTP, tra cui intestazioni, codice di stato e dati. |
HttpStreamContent |
Fornisce contenuto HTTP che usa un flusso. |
HttpStringContent |
Fornisce contenuto HTTP che usa una stringa. |
HttpTransportInformation |
Fornisce informazioni sul trasporto sottostante usato dalla connessione HTTP. |
Struct
HttpProgress |
Contiene informazioni sullo stato sullo stato di avanzamento di un'operazione HttpClient . |
Interfacce
IHttpContent |
Fornisce un'interfaccia di base per un corpo di entità HTTP e intestazioni di contenuto. |
Enumerazioni
HttpCompletionOption |
Indica se le operazioni HttpClient asincrone vengono considerate completate quando tutte le risposte vengono lette o quando vengono lette solo le intestazioni. |
HttpProgressStage |
Indica il passaggio in corso per una connessione HTTP. |
HttpResponseMessageSource |
Indica l'origine dei dati ricevuti in HttpResponseMessage. |
HttpStatusCode |
Contiene i valori dei codici di stato definiti per HTTP nella risposta a una richiesta HTTP. |
HttpVersion |
Rappresenta la versione del protocollo HTTP. |
Esempio
Il codice di esempio seguente illustra come OTTENERE contenuto da un server HTTP come stringa.
using System;
using Windows.Foundation;
using Windows.Web.Http;
// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
var uri = new Uri("http://example.com/datalist.aspx");
var httpClient = new HttpClient();
// Always catch network exceptions for async methods
try
{
var result = await httpClient.GetStringAsync(uri);
}
catch (Exception ex)
{
// Details in ex.Message and ex.HResult.
}
// Once your app is done using the HttpClient object call dispose to
// free up system resources (the underlying socket and memory used for the object)
httpclient.Dispose();
#include "winrt/Windows.Foundation.h"
#include "winrt/Windows.Web.Http.h"
using namespace winrt;
Windows::Foundation::IAsyncAction HttpClientExample()
{
Windows::Foundation::Uri uri{ L"http://www.bing.com" };
Windows::Web::Http::HttpClient httpClient{};
// Always catch network exceptions for async methods.
try
{
auto response{ co_await httpClient.GetStringAsync(uri) };
}
catch (winrt::hresult_error const& ex)
{
// Details in ex.message() and ex.to_abi().
}
// The destructor of HttpClient frees system resources
// (the underlying socket, and memory used for the object).
}
using namespace Windows::Foundation;
using namespace Windows::Web::Http;
// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
uri = ref new Uri("http://example.com/datalist.aspx");
httpClient = ref new HttpClient();
// Always catch network exceptions for async methods
try
{
httpClient->GetStringAsync(uri);
}
catch (Exception ^ ex)
{
// Details in ex.Message and ex.HResult.
}
// In C++/CX, the system resources used by httpClient object are released
// when the object falls out of scope or by the destructor (delete operator).
Commenti
Lo spazio dei nomi Windows.Web.Http e gli spazi dei nomi Windows.Web.Http.Headers e Windows.Web.Http.Filters correlati forniscono un'interfaccia di programmazione per l'app UWP destinata ai servizi HTTP e REST correlati. Queste funzionalità di questa nuova API HTTP sono progettate per essere conformi a HTTP, come definito in RFC 2616 da IETF. La nuova API HTTP offre supporto coerente in JavaScript, C#, VB.NET e C++ per sviluppatori.
Questa nuova API sostituisce l'uso di tre API diverse con funzionalità diverse necessarie in precedenza per ogni proiezione del linguaggio in Windows 8.
- WinJS.xhr per JavaScript
- HttpClient nello spazio dei nomi System.Net.Http per C# e VB.
- IXMLHTTPRequest2 per C++
Le classi nello spazio dei nomi Windows.Web.Http e correlate sono destinate a tutti i livelli di sviluppo HTTP e REST:
- Sviluppatori HTTP di base
- Sviluppatori di librerie HTTP specifiche del sito
- Sviluppatori HTTP avanzati
Per gli sviluppatori HTTP di base, la nuova API ha un'interfaccia semplice per gestire le attività più comuni e le impostazioni predefinite sensibili per l'autenticazione che devono funzionare nella maggior parte degli ambienti. Per gli sviluppatori di librerie, il modello a oggetti coerente e il supporto per più lingue significa che è possibile scrivere una sola volta una libreria per gli sviluppatori in tutte le lingue. Per gli sviluppatori HTTP avanzati, la nuova API include un set completo di funzionalità.
Lo spazio dei nomi Windows.Web.Http e gli spazi dei nomi correlati forniscono questi componenti:
- HttpClient : la classe principale che invia e riceve le richieste tramite HTTP.
- HttpRequestMessage - Messaggi di richiesta HTTP definiti in RFC 2616.
- HttpResponseMessage - Messaggi di risposta HTTP definiti in RFC 2616.
Il contenuto di un messaggio HTTP corrisponde al corpo dell'entità definito in RFC 2616. È possibile usare diverse classi e un'interfaccia nello spazio dei nomi Windows.Web.Http per il contenuto HTTP, tra cui:
- IHttpContent : interfaccia di base per gli sviluppatori per creare oggetti contenuto personalizzati. Rappresenta un corpo dell'entità HTTP e intestazioni di contenuto. Questa interfaccia include metodi che ottengono e impostano i dati effettivi del contenuto. Fornisce anche proprietà che ottengono e impostano intestazioni correlate al contenuto.
- HttpBufferContent : contenuto HTTP che usa un buffer.
- HttpFormUrlEncodedContent - Contenuto HTTP che usa tuple nome/valore codificato con il tipo MIME application/x-www-form-urlencoded MIME.
- HttpMultipartContent : contenuto HTTP che usa il tipo MIME multipart/* .
- HttpMultipartFormDataContent - Contenuto HTTP che usa il tipo MIME multipart/form-data codificato.
- HttpStreamContent : contenuto HTTP che usa un flusso. Questo tipo di contenuto viene usato dal metodo HTTP GET per ricevere dati e il metodo HTTP POST per caricare i dati.
- HttpStringContent : contenuto HTTP che usa una stringa.
Le classi nello spazio dei nomi Windows.Web.Http.Headers rappresentano le intestazioni HTTP definite in RFC 2616. Le intestazioni HTTP sono associate a HttpRequestMessage e HttpResponseMessage come proprietà recuperate o impostate.
Le classi nello spazio dei nomi Windows.Web.Http possono usare filtri in base alle classi nello spazio dei nomi Windows.Web.Http.Filters . I filtri forniscono gestori che consentono di risolvere i problemi comuni del servizio HTTP. I filtri possono essere concatenati in una sequenza per risolvere problemi di servizio HTTP più complessi. Diversi filtri pronti per l'uso sono inclusi in Windows 8.1 per aiutare gli sviluppatori di librerie a risolvere i problemi comuni del servizio HTTP. Questi filtri includono gestori per le connessioni di rete monitorate e riprovare. Gli sviluppatori di libreria possono scrivere i propri filtri per problemi specifici del sito, ad esempio un sito potrebbe usare la risposta 503 (Server Non disponibile) per indicare che la richiesta deve essere riprovata.
Se un'app che usa lo spazio dei nomi Windows.Web.Http e gli spazi dei nomi Windows.Web.Http.Headers e Windows.Web.Http.Filters scaricano grandi quantità di dati (50 megabyte o più), l'app deve trasmettere tali download e non usare il buffer predefinito. Se viene usato il buffer predefinito, l'utilizzo della memoria client diventa molto grande, causando una riduzione delle prestazioni.
Per codice di esempio in C#/VB/C++ e XAML che illustra come usare HttpClient per connettersi a un server HTTP, vedere HttpClient.
Per codice di esempio in JavaScript e HTML che illustra come usare HttpClient per connettersi a un server HTTP, vedere Connessione a un server HTTP tramite Windows.Web.Http.