HttpContent 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.
Eine Basisklasse, die einen HTTP-Entitätstext und Inhaltsheader darstellt.
public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
- Vererbung
-
HttpContent
- Abgeleitet
- Implementiert
Beispiele
Das folgende Beispiel zeigt eine benutzerdefinierte Implementierung von HttpContent. Einige Methoden sollten trotz der Definition als virtual
und nicht als abstract
in der Implementierung für ein optimales Verhalten außer Kraft gesetzt werden.
public class MyContent : HttpContent
{
private readonly string _data;
public MyContent(string data)
{
_data = data;
}
// Minimal implementation needed for an HTTP request content,
// i.e. a content that will be sent via HttpClient, contains the 2 following methods.
protected override bool TryComputeLength(out long length)
{
// This content doesn't support pre-computed length and
// the request will NOT contain Content-Length header.
length = 0;
return false;
}
// SerializeToStream* methods are internally used by CopyTo* methods
// which in turn are used to copy the content to the NetworkStream.
protected override Task SerializeToStreamAsync(Stream stream, TransportContext? context)
=> stream.WriteAsync(Encoding.UTF8.GetBytes(_data)).AsTask();
// Override SerializeToStreamAsync overload with CancellationToken
// if the content serialization supports cancellation, otherwise the token will be dropped.
protected override Task SerializeToStreamAsync(Stream stream, TransportContext? context, CancellationToken cancellationToken)
=> stream.WriteAsync(Encoding.UTF8.GetBytes(_data), cancellationToken).AsTask();
// In rare cases when synchronous support is needed, e.g. synchronous CopyTo used by HttpClient.Send,
// implement synchronous version of SerializeToStream.
protected override void SerializeToStream(Stream stream, TransportContext? context, CancellationToken cancellationToken)
=> stream.Write(Encoding.UTF8.GetBytes(_data));
// CreateContentReadStream* methods, if implemented, will be used by ReadAsStream* methods
// to get the underlying stream and avoid buffering.
// These methods will not be used by HttpClient on a custom content.
// They are for content receiving and HttpClient uses its own internal implementation for an HTTP response content.
protected override Task<Stream> CreateContentReadStreamAsync()
=> Task.FromResult<Stream>(new MemoryStream(Encoding.UTF8.GetBytes(_data)));
// Override CreateContentReadStreamAsync overload with CancellationToken
// if the content serialization supports cancellation, otherwise the token will be dropped.
protected override Task<Stream> CreateContentReadStreamAsync(CancellationToken cancellationToken)
=> Task.FromResult<Stream>(new MemoryStream(Encoding.UTF8.GetBytes(_data))).WaitAsync(cancellationToken);
// In rare cases when synchronous support is needed, e.g. synchronous ReadAsStream,
// implement synchronous version of CreateContentRead.
protected override Stream CreateContentReadStream(CancellationToken cancellationToken)
=> new MemoryStream(Encoding.UTF8.GetBytes(_data));
}
Hinweise
Es gibt verschiedene HTTP-Inhalte, die verwendet werden können. Dazu gehören die folgenden:
ByteArrayContent – Ein durch ein Bytearray dargestellter Inhalt dient auch als Basisklasse für StringContent und FormUrlEncodedContent.
StringContent – Ein zeichenfolgenbasierter Inhalt, standardmäßig als
text/plain
Content-Type
mitUTF-8
-Codierung serialisiert.FormUrlEncodedContent – Ein Inhalt mit Namen/Wert-Tupeln, die als
application/x-www-form-urlencoded
Content-Type
serialisiert werden.MultipartContent – Ein Inhalt, der mehrere verschiedene HttpContent Objekte als
multipart/*
Content-Type
serialisieren kann.JsonContent – Ein Inhalt, der Objekte standardmäßig als
application/json
Content-Type
mitUTF-8
Codierung serialisiert.
HTTP-Inhaltsklasse kann von einem Benutzer abgeleitet werden, um benutzerdefinierte Inhalts serialisierungslogik bereitzustellen.
Konstruktoren
HttpContent() |
Initialisiert eine neue Instanz der HttpContent Klasse. |
Eigenschaften
Headers |
Ruft die HTTP-Inhaltsheader ab, wie in RFC 2616 definiert. |
Methoden
CopyTo(Stream, TransportContext, CancellationToken) |
Serialisiert den HTTP-Inhalt in einen Bytestrom und kopiert ihn in |
CopyToAsync(Stream) |
Serialisieren Sie den HTTP-Inhalt in einen Bytestrom und kopiert ihn in das Streamobjekt, das als |
CopyToAsync(Stream, CancellationToken) |
Serialisieren Sie den HTTP-Inhalt in einen Bytestrom und kopiert ihn in das Streamobjekt, das als |
CopyToAsync(Stream, TransportContext) |
Serialisieren Sie den HTTP-Inhalt in einen Bytestrom und kopiert ihn in das Streamobjekt, das als |
CopyToAsync(Stream, TransportContext, CancellationToken) |
Serialisieren Sie den HTTP-Inhalt in einen Bytestrom und kopiert ihn in das Streamobjekt, das als |
CreateContentReadStream(CancellationToken) |
Serialisiert den HTTP-Inhalt in einen Speicherdatenstrom. |
CreateContentReadStreamAsync() |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in einen Speicherdatenstrom. |
CreateContentReadStreamAsync(CancellationToken) |
Serialisiert den HTTP-Inhalt als asynchronen Vorgang in einen Speicherdatenstrom. |
Dispose() |
Gibt die nicht verwalteten Ressourcen frei und entfernt die vom HttpContentverwendeten verwalteten Ressourcen. |
Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die vom HttpContent verwendet werden, und entfernt optional die verwalteten Ressourcen. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
LoadIntoBufferAsync() |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in einen Speicherpuffer. |
LoadIntoBufferAsync(CancellationToken) |
Eine Basisklasse, die einen HTTP-Entitätstext und Inhaltsheader darstellt. |
LoadIntoBufferAsync(Int64) |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in einen Speicherpuffer. |
LoadIntoBufferAsync(Int64, CancellationToken) |
Eine Basisklasse, die einen HTTP-Entitätstext und Inhaltsheader darstellt. |
MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
ReadAsByteArrayAsync() |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in ein Bytearray. |
ReadAsByteArrayAsync(CancellationToken) |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in ein Bytearray. |
ReadAsStream() |
Serialisiert den HTTP-Inhalt und gibt einen Datenstrom zurück, der den Inhalt darstellt. |
ReadAsStream(CancellationToken) |
Serialisiert den HTTP-Inhalt und gibt einen Datenstrom zurück, der den Inhalt darstellt. |
ReadAsStreamAsync() |
Serialisieren Sie den HTTP-Inhalt, und geben Sie einen Datenstrom zurück, der den Inhalt als asynchronen Vorgang darstellt. |
ReadAsStreamAsync(CancellationToken) |
Serialisieren Sie den HTTP-Inhalt, und geben Sie einen Datenstrom zurück, der den Inhalt als asynchronen Vorgang darstellt. |
ReadAsStringAsync() |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in eine Zeichenfolge. |
ReadAsStringAsync(CancellationToken) |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in eine Zeichenfolge. |
SerializeToStream(Stream, TransportContext, CancellationToken) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, serialisiert der HTTP-Inhalt in einen Stream. Andernfalls wird ein NotSupportedExceptionausgelöst. |
SerializeToStreamAsync(Stream, TransportContext) |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in einen Stream. |
SerializeToStreamAsync(Stream, TransportContext, CancellationToken) |
Serialisieren Sie den HTTP-Inhalt als asynchronen Vorgang in einen Stream. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
TryComputeLength(Int64) |
Bestimmt, ob der HTTP-Inhalt eine gültige Länge in Bytes hat. |
Erweiterungsmethoden
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonSerializerOptions, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Aufzählungsvorgang resultiert. |
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonTypeInfo<TValue>, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Aufzählungsvorgang resultiert. |
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Aufzählungsvorgang resultiert. |
ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Vorgang resultiert. |
ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Vorgang resultiert. |
ReadFromJsonAsync(HttpContent, Type, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Vorgang resultiert. |
ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Vorgang resultiert. |
ReadFromJsonAsync<T>(HttpContent, JsonTypeInfo<T>, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Vorgang resultiert. |
ReadFromJsonAsync<T>(HttpContent, CancellationToken) |
Liest den HTTP-Inhalt und gibt den Wert zurück, der aus der Deserialisierung des Inhalts als JSON in einem asynchronen Vorgang resultiert. |