HttpContent Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
EGY HTTP-entitás törzsét és tartalomfejléceit képviselő alaposztály.
public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
- Öröklődés
-
HttpContent
- Származtatott
- Megvalósítás
Példák
Az alábbi példában a egyéni implementációja HttpContentlátható. Néhány metódust, annak ellenére, hogy definiálva virtual van, és nem abstract, még mindig felül kell bírálni a megvalósításban az optimális viselkedés érdekében.
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));
}
Megjegyzések
Különböző HTTP-tartalmak használhatók. Ezek közé tartoznak a következők.
ByteArrayContent- Egy bájttömb által képviselt tartalom is alaposztályként szolgál az és StringContenta FormUrlEncodedContent .
StringContent- Sztringalapú tartalom, alapértelmezés szerint szerializálva, mint
text/plainContent-Typea kódolás.UTF-8FormUrlEncodedContent - A névvel/értékkel rendelkező tartalom szerializáltként
application/x-www-form-urlencodedContent-Typevan szerializálva.MultipartContent- Olyan tartalom, amely több különböző HttpContent objektumot szerializálhat.
multipart/*Content-TypeJsonContent– Olyan tartalom, amely alapértelmezés szerint a kódoláshoz
application/jsonhasonlóanContent-TypeUTF-8szerializálja az objektumokat.
A HTTP-tartalomosztályt a felhasználó levezetheti egyéni tartalom szerializálási logikához.
Konstruktorok
| Name | Description |
|---|---|
| HttpContent() |
Inicializálja a HttpContent osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| Headers |
Lekéri az RFC 2616-ban definiált HTTP-tartalomfejléceket. |
Metódusok
| Name | Description |
|---|---|
| CopyTo(Stream, TransportContext, CancellationToken) |
Szerializálja a HTTP-tartalmat bájtok adatfolyamává, és átmásolja a fájlba |
| CopyToAsync(Stream, CancellationToken) |
Szerializálja a HTTP-tartalmat bájtos adatfolyammá, és másolja a paraméterként megadott streamobjektumba |
| CopyToAsync(Stream, TransportContext, CancellationToken) |
Szerializálja a HTTP-tartalmat bájtos adatfolyammá, és másolja a paraméterként megadott streamobjektumba |
| CopyToAsync(Stream, TransportContext) |
Szerializálja a HTTP-tartalmat bájtos adatfolyammá, és másolja a paraméterként megadott streamobjektumba |
| CopyToAsync(Stream) |
Szerializálja a HTTP-tartalmat bájtos adatfolyammá, és másolja a paraméterként megadott streamobjektumba |
| CreateContentReadStream(CancellationToken) |
Szerializálja a HTTP-tartalmat egy memóriastreambe. |
| CreateContentReadStreamAsync() |
Szerializálja a HTTP-tartalmat egy memóriastreambe aszinkron műveletként. |
| CreateContentReadStreamAsync(CancellationToken) |
A HTTP-tartalmat aszinkron műveletként szerializálja egy memóriastreambe. |
| Dispose() |
Felszabadítja a nem felügyelt erőforrásokat, és a felügyelt erőforrásokat HttpContenta . |
| Dispose(Boolean) |
Felszabadítja a felügyelt erőforrások által HttpContent használt nem felügyelt erőforrásokat, és opcionálisan megsemmisíti a felügyelt erőforrásokat. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| LoadIntoBufferAsync() |
Szerializálja a HTTP-tartalmat egy memóriapufferbe aszinkron műveletként. |
| LoadIntoBufferAsync(CancellationToken) |
Szerializálja a HTTP-tartalmat egy memóriapufferbe aszinkron műveletként. |
| LoadIntoBufferAsync(Int64, CancellationToken) |
Szerializálja a HTTP-tartalmat egy memóriapufferbe aszinkron műveletként. |
| LoadIntoBufferAsync(Int64) |
Szerializálja a HTTP-tartalmat egy memóriapufferbe aszinkron műveletként. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ReadAsByteArrayAsync() |
Szerializálja a HTTP-tartalmat egy bájttömbbe aszinkron műveletként. |
| ReadAsByteArrayAsync(CancellationToken) |
Szerializálja a HTTP-tartalmat egy bájttömbbe aszinkron műveletként. |
| ReadAsStream() |
Szerializálja a HTTP-tartalmat, és visszaad egy streamet, amely a tartalmat jelöli. |
| ReadAsStream(CancellationToken) |
Szerializálja a HTTP-tartalmat, és visszaad egy streamet, amely a tartalmat jelöli. |
| ReadAsStreamAsync() |
Szerializálja a HTTP-tartalmat, és adjon vissza egy streamet, amely a tartalmat aszinkron műveletként jelöli. |
| ReadAsStreamAsync(CancellationToken) |
Szerializálja a HTTP-tartalmat, és adjon vissza egy streamet, amely a tartalmat aszinkron műveletként jelöli. |
| ReadAsStringAsync() |
Szerializálja a HTTP-tartalmat sztringre aszinkron műveletként. |
| ReadAsStringAsync(CancellationToken) |
Szerializálja a HTTP-tartalmat sztringre aszinkron műveletként. |
| SerializeToStream(Stream, TransportContext, CancellationToken) |
Ha egy származtatott osztályban felül van bírálva, szerializálja a HTTP-tartalmat egy streamben. Ellenkező esetben egy NotSupportedException. |
| SerializeToStreamAsync(Stream, TransportContext, CancellationToken) |
Szerializálja a HTTP-tartalmat egy streamben aszinkron műveletként. |
| SerializeToStreamAsync(Stream, TransportContext) |
Szerializálja a HTTP-tartalmat egy streamben aszinkron műveletként. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| TryComputeLength(Int64) |
Meghatározza, hogy a HTTP-tartalom bájtban érvényes hosszúságú-e. |
Bővítő metódusok
| Name | Description |
|---|---|
| ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amelyet a tartalom deszerializálása eredményez JSON-ként egy aszinkron számbavételi műveletben. |
| ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonSerializerOptions, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amelyet a tartalom deszerializálása eredményez JSON-ként egy aszinkron számbavételi műveletben. |
| ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonTypeInfo<TValue>, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amelyet a tartalom deszerializálása eredményez JSON-ként egy aszinkron számbavételi műveletben. |
| ReadFromJsonAsync(HttpContent, Type, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amely a tartalom Aszinkron műveletben JSON-ként való deszerializálásából ered. |
| ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amely a tartalom Aszinkron műveletben JSON-ként való deszerializálásából ered. |
| ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amely a tartalom Aszinkron műveletben JSON-ként való deszerializálásából ered. |
| ReadFromJsonAsync<T>(HttpContent, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amely a tartalom Aszinkron műveletben JSON-ként való deszerializálásából ered. |
| ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amely a tartalom Aszinkron műveletben JSON-ként való deszerializálásából ered. |
| ReadFromJsonAsync<T>(HttpContent, JsonTypeInfo<T>, CancellationToken) |
Beolvassa a HTTP-tartalmat, és visszaadja azt az értéket, amely a tartalom Aszinkron műveletben JSON-ként való deszerializálásából ered. |