Windows.Web.Http Namespace
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
- WinJS.xhr für JavaScript
- HttpClient im System.Net.Http-Namespace für C# und VB.
- IXMLHTTPRequest2 für C++
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:
- HttpClient : die Standard-Klasse, die Anforderungen über HTTP sendet und empfängt.
- HttpRequestMessage : HTTP-Anforderungsmeldungen, die in RFC 2616 definiert sind.
- HttpResponseMessage : HTTP-Antwortnachrichten, die in RFC 2616 definiert sind.
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.