HttpContent Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Základní třída představující tělo entity HTTP a hlavičky obsahu.
public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
- Dědičnost
-
HttpContent
- Odvozené
- Implementuje
Příklady
Následující příklad ukazuje vlastní implementaci .HttpContent Některé metody, i když jsou definovány jako virtual
a nikoli abstract
, by se měly v implementaci přepsat, aby se chytlo optimální chování.
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));
}
Poznámky
Existují různé obsahy PROTOKOLU HTTP, které lze použít. Patří mezi ně následující:
ByteArrayContent – Obsah reprezentovaný polem bajtů slouží také jako základní třída pro StringContent a FormUrlEncodedContent.
StringContent – Obsah založený na řetězci, ve výchozím nastavení serializovaný jako
text/plain
Content-Type
přiUTF-8
kódování.FormUrlEncodedContent – Obsah s řazenými kolekcemi členů název/hodnota serializován jako
application/x-www-form-urlencoded
Content-Type
.MultipartContent – Obsah, který může serializovat více různých HttpContent objektů jako
multipart/*
Content-Type
.JsonContent – Obsah, který serializuje objekty jako
application/json
Content-Type
přiUTF-8
kódování ve výchozím nastavení.
Třída obsahu HTTP může být odvozena uživatelem za účelem poskytování vlastní logiky serializace obsahu.
Konstruktory
HttpContent() |
Inicializuje novou instanci HttpContent třídy . |
Vlastnosti
Headers |
Získá hlavičky obsahu HTTP definované v RFC 2616. |
Metody
CopyTo(Stream, TransportContext, CancellationToken) |
Serializuje obsah HTTP do streamu bajtů a zkopíruje ho do |
CopyToAsync(Stream) |
Serializujte obsah HTTP do streamu bajtů a zkopírujte ho do objektu stream poskytnutého |
CopyToAsync(Stream, CancellationToken) |
Serializujte obsah HTTP do streamu bajtů a zkopírujte ho do objektu stream poskytnutého |
CopyToAsync(Stream, TransportContext) |
Serializujte obsah HTTP do streamu bajtů a zkopírujte ho do objektu stream poskytnutého |
CopyToAsync(Stream, TransportContext, CancellationToken) |
Serializujte obsah HTTP do streamu bajtů a zkopírujte ho do objektu stream poskytnutého |
CreateContentReadStream(CancellationToken) |
Serializuje obsah HTTP do datového proudu paměti. |
CreateContentReadStreamAsync() |
Serializovat obsah HTTP do datového proudu paměti jako asynchronní operace. |
CreateContentReadStreamAsync(CancellationToken) |
Serializuje obsah HTTP do datového proudu paměti jako asynchronní operace. |
Dispose() |
Uvolní nespravované prostředky a odstraní spravované prostředky používané nástrojem HttpContent. |
Dispose(Boolean) |
Uvolní nespravované prostředky používané a HttpContent volitelně odstraní spravované prostředky. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
LoadIntoBufferAsync() |
Serializovat obsah HTTP do vyrovnávací paměti jako asynchronní operace. |
LoadIntoBufferAsync(Int64) |
Serializovat obsah HTTP do vyrovnávací paměti jako asynchronní operace. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ReadAsByteArrayAsync() |
Serializovat obsah HTTP do pole bajtů jako asynchronní operace. |
ReadAsByteArrayAsync(CancellationToken) |
Serializovat obsah HTTP do pole bajtů jako asynchronní operace. |
ReadAsStream() |
Serializuje obsah HTTP a vrátí datový proud, který představuje obsah. |
ReadAsStream(CancellationToken) |
Serializuje obsah HTTP a vrátí datový proud, který představuje obsah. |
ReadAsStreamAsync() |
Serializovat obsah HTTP a vrátit datový proud, který představuje obsah jako asynchronní operace. |
ReadAsStreamAsync(CancellationToken) |
Serializovat obsah HTTP a vrátit datový proud, který představuje obsah jako asynchronní operace. |
ReadAsStringAsync() |
Serializace obsahu HTTP do řetězce jako asynchronní operace. |
ReadAsStringAsync(CancellationToken) |
Serializace obsahu HTTP do řetězce jako asynchronní operace. |
SerializeToStream(Stream, TransportContext, CancellationToken) |
Při přepsání v odvozené třídě serializuje obsah HTTP na datový proud. V opačném případě vyvolá NotSupportedException. |
SerializeToStreamAsync(Stream, TransportContext) |
Serializovat obsah HTTP do streamu jako asynchronní operace. |
SerializeToStreamAsync(Stream, TransportContext, CancellationToken) |
Serializovat obsah HTTP do streamu jako asynchronní operace. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
TryComputeLength(Int64) |
Určuje, zda má obsah HTTP platnou délku v bajtech. |
Metody rozšíření
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonSerializerOptions, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní výčtové operaci. |
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonTypeInfo<TValue>, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní výčtové operaci. |
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní výčtové operaci. |
ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní operaci. |
ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní operaci. |
ReadFromJsonAsync(HttpContent, Type, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní operaci. |
ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní operaci. |
ReadFromJsonAsync<T>(HttpContent, JsonTypeInfo<T>, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní operaci. |
ReadFromJsonAsync<T>(HttpContent, CancellationToken) |
Přečte obsah HTTP a vrátí hodnotu, která je výsledkem deserializace obsahu jako JSON v asynchronní operaci. |
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro