HttpClient Klasse

Definition

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
Object Platform::Object IInspectable HttpClient
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