Herstellen einer Verbindung mit Webdiensten (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

In diesen Themen werden verschiedene Methoden vorgestellt, wie Sie in einer Windows-Runtime-App eine Verbindung mit einem Webdienst herstellen können. Die empfohlene Methode ist die Verwendung von Windows.Web.Http.HttpClient, einer neuen Windows-Runtime-Klasse, die für alle Sprachen verfügbar ist. Dies ist die leistungsstärkste API mit dem größten Funktionsumfang, um in einer App auf einen Webdienst zuzugreifen.

Klassen im Windows.Web.Http-Namespace stellen eine Programmierschnittstelle für moderne HTTP-Client-Apps bereit. Der Windows.Web.Http-Namespace und die dazugehörigen Namespaces Windows.Web.Http.Headers und Windows.Web.Http.Filters stellen HTTP-Clientkomponenten bereit, mit denen Benutzer HTTP-Anforderungen ausführen und HTTP-Anforderungen von modernen Webdiensten per HTTP empfangen können.

Für grundlegende HTTP-Anforderungsvorgänge verfügt Windows.Web.Http.HttpClient über eine einfache Schnittstelle zum Durchführen allgemeiner Aufgaben. Darüber werden auch angemessene Standardeinstellungen für die Authentifizierung (AUTH) bereitgestellt, die für die meisten Szenarios geeignet sind. Für komplexere HTTP-Vorgänge sind viele weitere Funktionen verfügbar.

In den Themen in diesem Abschnitt wird auch ein Wrapper für die Windows-Bibliothek für JavaScript für XMLHttpRequest mit der Bezeichnung WinJS.xhr beschrieben. WinJS.xhr bietet eine einfache Möglichkeit für den Zugriff auf Webinhalte in Ihrer App. Sie können mit WinJS.xhr eine HTTP- oder HTTPS-Anforderung zum Hoch- oder Herunterladen von Inhalten und Dateien in beliebigen Formaten senden.

Bei XMLHttpRequest können Sie angeben, ob die Anforderung asynchron erfolgen soll. Dagegen wird WinJS.xhr in jedem Fall asynchron ausgeführt. WinJS.xhr gibt ein WinJS.Promise zurück, damit abgeschlossene Anforderungen, Fehler und laufende Anforderungen unter Verwendung der then- oder der done-Methode behandelt werden können.

Warnung  Es ist jetzt möglich, XMLHttpRequest zu verwenden, um sehr große Objekte, wie Blob- und FormData-Objekte, zu übertragen, deren Upload sehr viel Zeit in Anspruch nehmen kann. Sie können Windows.Web.Http.HttpClient auch verwenden, um sehr große Objekte zu senden oder zu empfangen, z. B. Streams. Da eine App jederzeit beendet werden kann, sollten Sie für diese Vorgänge ggf. die Hintergrundübertragung im Windows.Networking.BackgroundTransfer-Namespace verwenden. Weitere Informationen zum Hoch- und Herunterladen umfangreicher Inhalte finden Sie unter So wird's gemacht: Hochladen von Dateien und Übertragen von Daten im Hintergrund.

 

In der folgenden Tabelle sind APIs aufgeführt, mit denen in JavaScript geschriebene Apps auf einen Webdienst zugreifen können. Die Plattform gibt die Windows-Version an, unter der das Feature erstmals hinzugefügt wurde.

API Plattform Kommentare

Windows.Web.Http.HttpClient

Windows 8.1, Windows Phone 8.1, Windows Server 2012 R2

Dies ist die empfohlene Methode zum Herstellen einer Verbindung mit einem HTTP-Server, um Daten zu senden und zu empfangen.

Dieses Feature wird auch in Apps unterstützt, die in JavaScript, C#, Visual Basic und C++ geschrieben wurden.

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

Unter Windows 8 und Windows Server 2012 war dies die empfohlene Methode, als XMLHttpRequest noch nicht gut geeignet war.

XMLHttpRequest Windows 8, Windows Phone 8.1, Windows Server 2012 Dieses Objekt und diese API sind in JavaScript-Implementierungen in den meisten modernen Webbrowsern verfügbar.

 

Entwicklerzielgruppe

Entwickler, die JavaScript und HTML verwenden und Apps entwickeln möchten, die Verbindungen mit einem Webdienst herstellen.

Die Informationen in diesem Thema gelten für Apps in JavaScript und HTML.

Weitere Informationen zum Herstellen einer Verbindung mit einem Webdienst für Apps mit C++/XAML sowie Apps, die .NET Framework 4.5 nutzen und in C# oder Visual Basic geschrieben wurden, finden Sie unter Herstellen einer Verbindung mit Webdiensten (XAML).

Inhalt dieses Abschnitts

Thema Beschreibung

So wird's gemacht: Herstellen einer Verbindung mit einem HTTP-Server mit "Windows.Web.Http"

Senden Sie eine GET-Anforderung an einen Webdienst, und rufen Sie die Antwort mithilfe der Windows.Web.Http.HttpClient-Klasse im Windows.Web.Http-Namespace ab.

So wird's gemacht: Anfordern einer HTTPS-Verbindung

Mit dem "ms-https-connections-only"meta-Elementwert können Sie verhindern, dass Ihre App HTTP-Verbindungen für die Navigation oder zum Abrufen anderer Webinhalte, bei denen es sich nicht um Medien handelt, verwendet. Wenn Sie das content-Attribut dieses meta-Elements auf "true" festlegen, tritt bei der Navigation sowie beim Abrufen von Webinhalten, die keine Medien sind, über HTTP ein Fehler auf.

So wird's gemacht: Herunterladen einer Datei mit "WinJS.xhr"

WinJS.xhr bietet eine einfache Möglichkeit zum Herunterladen von Webinhalten in Ihre App. In diesem Thema werden das Herunterladen einer Datei mit WinJS.xhr, das Behandeln von Fehlern und das Erstellen von Berichten zum Downloadstatus erläutert. Zudem wird gezeigt, wie Sie verschiedene Inhaltstypen herunterladen.

So wird's gemacht: Hochladen von Binärdaten mit "WinJS.xhr"

Wenn Sie WinJS.xhr verwenden (das XMLHttpRequest umschließt), können Sie Binärdaten hochladen und herunterladen. Dieses Beispiel zeigt, wie Sie eine Bitmap aus Ihren Bildern hochladen. Die Windows-Runtime-Methode, mit der die Bitmap-Datei geöffnet wird, gibt einen IRandomAccessStream zurück, daher müssen Sie diesen mit MSApp.createBlobFromRandomAccessStream in ein Blob konvertieren.

Warnung  Sie können jetzt mit XMLHttpRequest Objekte hoch- und herunterladen, die größer als ein paar MB sind, z. B. Blob-Objekte und FormData-Objekte, bei denen der Vorgang lange dauert. Da Apps jederzeit beendet werden können, sollten Sie für diese Vorgänge ggf. die Hintergrundübertragungs-APIs der Windows-Runtime verwenden. Weitere Informationen zum Hoch- und Herunterladen von Inhalten finden Sie unter So wird's gemacht: Hochladen einer Datei und So wird's gemacht: Herunterladen einer Datei. Allgemeine Informationen zu Hintergrundübertragungen finden Sie unter Transferring data in the background.
 

So wird's gemacht: Sicherstellen, dass "WinJS.xhr" Anforderungen erneut sendet

Wenn Sie mit WinJS.xhr eine Webressource anfordern, wird die Antwort unter Umständen zwischengespeichert. Dies bedeutet, dass nachfolgende Anforderungen die Version der Ressource zurückgeben, die bereits auf dem Client-PC vorhanden sind, anstatt die Anforderung erneut durchzuführen. Sie können aber auch einen HTTP-Header einfügen, der sicherstellt, dass auch dann erneute Anforderungen gesendet werden, wenn die Antwort bereits zwischengespeichert wurde.

Festlegen von Timeoutwerten mit "WinJS.xhr" oder "HttpClient"

Wenn Sie XMLHttpRequest verwenden, können Sie Timeoutwerte direkt festlegen, bei der Verwendung von Windows.Web.Http.HttpClient oder WinJS.xhr ist dies dagegen nicht möglich. Es gibt jedoch eine Möglichkeit, Timeouts für WinJS.Promise-Objekte festzulegen. Rufen Sie WinJS.Promise.timeout auf. Damit stellen Sie sicher, dass die Anforderung abgebrochen wird, wenn sie nicht innerhalb der vorgegebenen Zeit abgeschlossen ist.

So wird's gemacht: Erstellen eines Mashups mit "WinJS.xhr"

Ein Mashup ist eine Webanwendung, die Standarddaten aus zwei oder mehr Quellen zum Erstellen von etwas Neuem verwendet. In diesem Beispiel ist die Verwendung von XMLHttpRequest (XHR) zum Abrufen und Anzeigen eines Remote-RSS-Feed (Really Simple Syndication) zu sehen.

 

Verwandte Themen

Weitere Ressourcen

Deklaration der App-Funktionen

Behandeln von Ausnahmen in Netzwerk-Apps

Konfigurieren von Netzwerkisolationsfunktionen

Aktivieren von Loopback und Debuggen der Netzwerkisolation.

Referenz

Windows.Foundation.Uri

Windows.Web.Http

Windows.Web.Http.Filters

Windows.Web.Http.Headers

Windows.Web.Http.HttpClient

WinJS.xhr

XMLHttpRequest

Beispiele

Beispiel für HttpClient

Integrieren von Inhalten und Steuerelementen aus dem Webdienstbeispiel

Beispiel zum Speichern und Laden von Inhalten mithilfe eines Blobs

Beispiel zur Webauthentifizierung

Beispiel zu XHR, Behandeln von Navigationsfehlern und URL-Schemas