Windows.Web.Http Namespace

Stellt eine moderne HTTP-Client-API für die UWP-App bereit.

Klassen

HttpBufferContent

Stellt HTTP-Inhalt bereit, der einen Puffer verwendet.

HttpClient

Sendet HTTP-Anforderungen und empfängt HTTP-Antworten von einer Ressource, die durch einen URI identifiziert wurde. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im Konzeptthema HttpClient .

HttpCookie

Stellt eine Reihe von Eigenschaften und Methoden zum Verwalten eines HTTP-Cookies bereit.

HttpCookieCollection

Stellt einen Auflistungscontainer für Instanzen der HttpCookie-Klasse bereit.

HttpCookieManager

Fügen Sie ein HttpCookie hinzu, oder löschen Sie sie, oder zeigen Sie die Cookies an, die einer App zugeordnet sind.

HttpFormUrlEncodedContent

Stellt HTTP-Inhalt bereit, der Name/Wert-Daten verwendet, die mit dem MIME-Typ application/x-www-form-urlencoded codiert sind.

HttpGetBufferResult

Kombiniert das endgültige Pufferergebnis mit folgendem: der ursprünglichen HTTP-Anforderung, der resultierenden HTTP-Antwort (falls vorhanden), einem erweiterten Fehlerwert und einer erfolgreichen Angabe.

HttpGetInputStreamResult

Kombiniert das endgültige Eingabedatenstromergebnis mit folgenden: der ursprünglichen HTTP-Anforderung, der resultierenden HTTP-Antwort (falls vorhanden), einem erweiterten Fehlerwert und einer erfolgreichen Angabe.

HttpGetStringResult

Kombiniert das endgültige Zeichenfolgenergebnis mit folgendem: der ursprünglichen HTTP-Anforderung, der resultierenden HTTP-Antwort (falls vorhanden), einem erweiterten Fehlerwert und einer erfolgreichen Angabe.

HttpMethod

Ruft Standard-HTTP-Methoden wie GET und POST ab und erstellt neue HTTP-Methoden.

HttpMultipartContent

Stellt HTTP-Inhalte bereit, die den mehrteiligen/* MIME-Typ verwendet.

HttpMultipartFormDataContent

Stellt HTTP-Inhalt bereit, der den MIME-Typ multipart/form-data verwendet.

HttpRequestMessage

Stellt eine HTTP-Anforderungsnachricht einschließlich Headern dar.

HttpRequestResult

Kombiniert die ursprüngliche HTTP-Anforderung mit folgendem: der resultierenden HTTP-Antwort (falls vorhanden), einem erweiterten Fehlerwert und einer erfolgreichen Angabe.

HttpResponseMessage

Stellt eine HTTP-Antwortnachricht mit Headern, dem status Code und Daten dar.

HttpStreamContent

Stellt HTTP-Inhalt bereit, der einen Stream verwendet.

HttpStringContent

Stellt HTTP-Inhalt bereit, der eine Zeichenfolge verwendet.

HttpTransportInformation

Stellt Informationen zum zugrunde liegenden Transport bereit, der von der HTTP-Verbindung verwendet wird.

Strukturen

HttpProgress

Enthält status Informationen zum Fortschritt eines HttpClient-Vorgangs.

Schnittstellen

IHttpContent

Stellt eine Basisschnittstelle für einen HTTP-Entitätstext und Inhaltsheader bereit.

Enumerationen

HttpCompletionOption

Gibt an, ob asynchrone HttpClient-Vorgänge als abgeschlossen gelten, wenn die gesamte Antwort gelesen wird oder wenn nur die Header gelesen werden.

HttpProgressStage

Gibt den Schritt im Status einer HTTP-Verbindung an.

HttpResponseMessageSource

Gibt die Quelle der in httpResponseMessage empfangenen Daten an.

HttpStatusCode

Enthält die Werte status Codes, die für HTTP in der Antwort auf eine HTTP-Anforderung definiert sind.

HttpVersion

Stellt die HTTP-Protokollversion dar.

Beispiele

Der folgende Beispielcode zeigt, wie Sie Inhalte von einem HTTP-Server als Zeichenfolge abrufen.

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).

Hinweise

Der Windows.Web.Http-Namespace und die zugehörigen Namespaces "Windows.Web.Http.Headers " und "Windows.Web.Http.Filters " stellen eine Programmierschnittstelle für die UWP-App bereit, die auf HTTP- und REST-Dienste ausgerichtet ist. Diese Features dieser neuen HTTP-API sind so konzipiert, dass sie mit HTTP konform sind, wie in RFC 2616 von der IETF definiert. Die neue HTTP-API bietet konsistente Unterstützung in JavaScript, C#, VB.NET und C++ für Entwickler.

Diese neue API ersetzt die Verwendung von drei verschiedenen APIs durch unterschiedliche Features, die zuvor für jede Sprachprojektion in Windows 8 erforderlich waren.

Klassen in den Windows.Web.Http- und zugehörigen Namespaces sind auf alle Ebenen der HTTP- und REST-Entwicklung ausgerichtet:

  • Grundlegende HTTP-Entwickler
  • Websitespezifische HTTP-Bibliotheksentwickler
  • Erweiterte HTTP-Entwickler

Für einfache HTTP-Entwickler verfügt die neue API über eine einfache Schnittstelle zum Verarbeiten der gängigsten Aufgaben und sinnvollen Standardwerte für die Authentifizierung, die in den meisten Umgebungen funktionieren sollten. Für Bibliotheksentwickler bedeutet das konsistente Objektmodell und die Unterstützung mehrerer Sprachen, dass Sie eine Bibliothek einmal für Entwickler in allen Sprachen schreiben können. Für fortgeschrittene HTTP-Entwickler enthält die neue API umfangreiche Funktionen.

Der Windows.Web.Http-Namespace und die zugehörigen Namespaces stellen die folgenden Komponenten bereit:

Der Inhalt einer HTTP-Nachricht entspricht dem in RFC 2616 definierten Entitätstext. Mehrere Klassen und eine Schnittstelle im Windows.Web.Http-Namespace können für HTTP-Inhalte verwendet werden, einschließlich:

  • IHttpContent : Eine Basisschnittstelle für Entwickler, um ihre eigenen Inhaltsobjekte zu erstellen. Es stellt einen HTTP-Entitätstext und Inhaltsheader dar. Diese Schnittstelle verfügt über Methoden, mit denen die tatsächlichen Inhaltsdaten abgerufen und festgelegt werden. Außerdem werden Eigenschaften bereitgestellt, die inhaltsbezogene Header abrufen und festlegen.
  • HttpBufferContent : HTTP-Inhalt, der einen Puffer verwendet.
  • HttpFormUrlEncodedContent : HTTP-Inhalt, der Name/Wert-Tupel verwendet, die mit dem MIME-Typ application/x-www-form-urlencoded codiert sind.
  • HttpMultipartContent : HTTP-Inhalt, der mehrteilige/* MIME-Typ verwendet.
  • HttpMultipartFormDataContent : HTTP-Inhalt, der den codierten MIME-Typ multipart/form-data verwendet.
  • HttpStreamContent : HTTP-Inhalt, der einen Stream verwendet. Dieser Inhaltstyp wird von der HTTP GET-Methode zum Empfangen von Daten und der HTTP POST-Methode zum Hochladen von Daten verwendet.
  • HttpStringContent : HTTP-Inhalt, der eine Zeichenfolge verwendet.

Klassen im Windows.Web.Http.Headers-Namespace stellen HTTP-Header dar, die in RFC 2616 definiert sind. HTTP-Header sind HttpRequestMessage und HttpResponseMessage als Eigenschaften zugeordnet, die abgerufen oder festgelegt werden.

Klassen im Windows.Web.Http-Namespace können Filter basierend auf den Klassen im Windows.Web.Http.Filters-Namespace verwenden. Filter stellen Handler bereit, um bei häufigen HTTP-Dienstproblemen zu helfen. Filter können in einer Sequenz miteinander verkettet werden, um komplexere HTTP-Dienstprobleme zu beheben. Mehrere sofort einsatzbereite Filter sind in Windows 8.1 enthalten, um Bibliotheksentwicklern bei der Behebung allgemeiner HTTP-Dienstprobleme zu helfen. Diese Filter umfassen Handler für überwachte Netzwerkverbindungen und wiederholen sie. Bibliotheksentwickler können eigene Filter für standortspezifische Probleme schreiben (beispielsweise kann eine Website die Antwort 503 (Server nicht verfügbar) verwenden, um anzugeben, dass die Anforderung wiederholt werden soll.

Wenn eine App, die den Windows.Web.Http-Namespace und die zugehörigen Namespaces Windows.Web.Http.Headers und Windows.Web.Http.Filters verwendet, große Datenmengen (mindestens 50 Megabyte) herunterlädt, sollte die App diese Downloads streamen und nicht den Standardpuffer verwenden. Wenn der Standardpuffer verwendet wird, wird die Arbeitsspeicherauslastung des Clients sehr groß, was zu einer Leistungsminderung führen kann.

Beispielcode in C#/VB/C++ und XAML, der zeigt, wie HttpClient zum Herstellen einer Verbindung mit einem HTTP-Server verwendet wird, finden Sie unter HttpClient.

Beispielcode in JavaScript und HTML, der zeigt, wie HttpClient zum Herstellen einer Verbindung mit einem HTTP-Server verwendet wird, finden Sie unter Herstellen einer Verbindung mit einem HTTP-Server mithilfe von Windows.Web.Http.