Condividi tramite


Windows.Web.Http Spazio dei nomi

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.

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:

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.