HttpClient Klasse
Definition
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.
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 .
public ref class HttpClient sealed : IClosable, IStringable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Web.Http.IHttpClientFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class HttpClient final : IClosable, IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(Windows.Web.Http.IHttpClientFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class HttpClient final : IClosable, IStringable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Web.Http.IHttpClientFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class HttpClient : System.IDisposable, IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Web.Http.IHttpClientFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class HttpClient : System.IDisposable, IStringable
function HttpClient(filter)
Public NotInheritable Class HttpClient
Implements IDisposable, IStringable
- Vererbung
- Attribute
- Implementiert
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
|
Beispiele
Der folgende Beispielcode zeigt, wie Sie Inhalte von einem Webserver als Zeichenfolge abrufen.
using System;
var uri = new System.Uri("http://www.bing.com");
using (var httpClient = new Windows.Web.Http.HttpClient())
{
// Always catch network exceptions for async methods
try
{
string result = await httpClient.GetStringAsync(uri);
}
catch (Exception ex)
{
// Details in ex.Message and ex.HResult.
}
}
// Having exited the scope of the using statement, httpClient.Dispose() will be called
// automatically, thus freeing up system resources (the underlying socket, and memory
// used for the object).
#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;
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
{
// 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).
Die HttpClient-Klasse wird häufig von einer App verwendet, um Text herunterzuladen und dann zu analysieren. Es ist möglich, dass die im Content-Type-Header von einem HTTP-Server angegebene Zeichencodierung nicht mit der Zeichencodierung des HTTP-Antworttexts übereinstimmt (z. B. die XML-Codierung in einem XML-Dokument). Eine Möglichkeit, HttpClient mit Text zu verwenden, besteht darin, die GetStringAsync-Methode aufzurufen und die zurückgegebene Zeichenfolge an den Textparser zu übergeben. Dies kann jedoch zu Fehlern führen, wenn der Content-Type kein Typ ist, der als Zeichenfolge ausgedrückt werden kann. Eine zuverlässige Möglichkeit, HttpClient mit einem XML-Parser zu verwenden, besteht darin, die GetBufferAsync-Methode aufzurufen und den Puffer für das Element "<?xml>" zu analysieren. Verwenden Sie dann die angegebene Zeichencodierung ("<xmlversion="1.0" encoding="UTF-8"?>", z. B.), um den HTTP-Antworttext zu analysieren. Für andere Textformate können ähnliche Methoden verwendet werden, wenn die App den anfänglichen Teil des HTTP-Antworttexts überprüft, um die verwendete Zeichencodierung zu bestimmen.
Hinweise
Die HttpClient-Klasse instance fungiert als Sitzung, um HTTP-Anforderungen zu senden und Antworten zu empfangen. Ein HttpClient-instance ist eine Sammlung von Einstellungen, die für alle Anforderungen gelten, die von diesem instance ausgeführt werden. Darüber hinaus verwendet jeder HttpClient-instance einen eigenen Verbindungspool, der seine Anforderungen von Anforderungen isoliert, die von anderen HttpClient-Instanzen ausgeführt werden.
Der HttpClient fungiert auch als Klasse, die mit Filtern für spezifischere HTTP-Clients verwendet werden kann. Ein Beispiel wäre ein HttpClientFilter, der zusätzliche Methoden bereitstellt, die für einen sozialen Netzwerkdienst spezifisch sind (eine GetFriends-Methode für instance).
Wenn eine App, die HttpClient und zugehörige Klassen im Windows.Web.Http-Namespace verwendet, große Datenmengen (50 Megabyte oder mehr) herunterlädt, sollte die App diese Downloads streamen und nicht die Standardpufferung verwenden. Wenn die Standardpufferung verwendet wird, wird die Arbeitsspeicherauslastung des Clients sehr groß, was möglicherweise zu einer Leistungsminderung führt.
Beispielcode in C# und C++/WinRT, 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.
Versionsverlauf
Windows-Version | SDK-Version | Mehrwert |
---|---|---|
1903 | 18362 | TryDeleteAsync |
1903 | 18362 | TryGetAsync(Uri) |
1903 | 18362 | TryGetAsync(Uri,HttpCompletionOption) |
1903 | 18362 | TryGetBufferAsync |
1903 | 18362 | TryGetInputStreamAsync |
1903 | 18362 | TryGetStringAsync |
1903 | 18362 | TryPostAsync |
1903 | 18362 | TryPutAsync |
1903 | 18362 | TrySendRequestAsync(HttpRequestMessage) |
1903 | 18362 | TrySendRequestAsync(HttpRequestMessage,HttpCompletionOption) |
Konstruktoren
HttpClient() |
Initialisiert eine neue instance der HttpClient-Klasse. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
HttpClient(IHttpFilter) |
Initialisiert eine neue instance der HttpClient-Klasse mit einem bestimmten Filter für die Verarbeitung von HTTP-Antwortnachrichten. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
Eigenschaften
DefaultPrivacyAnnotation |
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 . |
DefaultRequestHeaders |
Ruft eine Auflistung von Headern ab, die mit jeder Anforderung gesendet werden sollen. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
Methoden
Close() |
Schließt die httpClient-instance und gibt zugeordnete Ressourcen frei. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
DeleteAsync(Uri) |
Senden Sie eine DELETE-Anforderung als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
Dispose() |
Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen. |
GetAsync(Uri) |
Eine GET-Anforderung an den angegebenen URI als asynchronen Vorgang senden. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
GetAsync(Uri, HttpCompletionOption) |
Senden Sie eine GET-Anforderung mit einer HTTP-Vervollständigungsoption als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
GetBufferAsync(Uri) |
Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Puffer in einem asynchronen Vorgang zurück. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
GetInputStreamAsync(Uri) |
Senden Sie eine GET-Anforderung an den angegebenen URI , und geben Sie den Antworttext als Stream in einem asynchronen Vorgang zurück. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
GetStringAsync(Uri) |
Senden Sie eine GET-Anforderung an den angegebenen URI und geben Sie den Antworttext als Zeichenfolge in einem asynchronen Vorgang zurück. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
PostAsync(Uri, IHttpContent) |
Senden Sie eine POST-Anforderung als asynchronen Vorgang an den angegebenen URI. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
PutAsync(Uri, IHttpContent) |
Eine PUT-Anforderung an den angegebenen URI als asynchronen Vorgang senden. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
SendRequestAsync(HttpRequestMessage) |
Senden Sie eine HTTP-Anforderung als asynchronen Vorgang. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
SendRequestAsync(HttpRequestMessage, HttpCompletionOption) |
Senden Sie eine HTTP-Anforderung mit einer HTTP-Vervollständigungsoption als asynchronen Vorgang. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle HttpClient-Objekt darstellt. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TryDeleteAsync(Uri) |
Senden Sie eine DELETE-Anforderung als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TryGetAsync(Uri) |
Sendet eine GET-Anforderung als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TryGetAsync(Uri, HttpCompletionOption) |
Sendet eine GET-Anforderung als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TryGetBufferAsync(Uri) |
Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als HttpGetBufferResult mit einem IBuffer-Wert in einem asynchronen Vorgang zurück. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TryGetInputStreamAsync(Uri) |
Senden Sie eine GET-Anforderung an den angegebenen URI , und geben Sie den Antworttext als Stream in einem asynchronen Vorgang zurück. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TryGetStringAsync(Uri) |
Senden Sie eine GET-Anforderung an den angegebenen URI und geben Sie den Antworttext als Zeichenfolge in einem asynchronen Vorgang zurück. Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TryPostAsync(Uri, IHttpContent) |
Sendet eine POST-Anforderung als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TryPutAsync(Uri, IHttpContent) |
Sendet eine PUT-Anforderung als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TrySendRequestAsync(HttpRequestMessage) |
Sendet eine HTTP-Anforderung als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
TrySendRequestAsync(HttpRequestMessage, HttpCompletionOption) |
Sendet eine HTTP-Anforderung mit einer Vervollständigungsoption als asynchronen Vorgang an den angegebenen URI . Programmieranleitungen für die HttpClient-Klasse und Codebeispiele finden Sie im konzeptuellen Thema HttpClient . |
Gilt für:
Weitere Informationen
- IClosable
- IStringable
- Uri
- Windows.Web.Http
- Windows.Web.Http.Filters
- Windows.Web.Http.Headers
- HttpClient
- Herstellen einer Verbindung mit einem HTTP-Server mithilfe von Windows.Web.Http
- Behandeln von Ausnahmen in Netzwerk-Apps
- System.Uri
- Beispiel für die Hintergrundübertragung
- Beispiel für die Hintergrundübertragung (Windows 8.x)
- HttpClient-Beispiel (Windows 10)
- JSON-Beispiel (Windows 10)