HttpContent Osztály

Definíció

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.

  1. ByteArrayContent- Egy bájttömb által képviselt tartalom is alaposztályként szolgál az és StringContenta FormUrlEncodedContent .

  2. StringContent- Sztringalapú tartalom, alapértelmezés szerint szerializálva, mint text/plainContent-Type a kódolás.UTF-8

  3. FormUrlEncodedContent - A névvel/értékkel rendelkező tartalom szerializáltként application/x-www-form-urlencodedContent-Typevan szerializálva.

  4. MultipartContent- Olyan tartalom, amely több különböző HttpContent objektumot szerializálhat.multipart/*Content-Type

  5. JsonContent– Olyan tartalom, amely alapértelmezés szerint a kódoláshoz application/json hasonlóan Content-TypeUTF-8 szerializá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 stream.

CopyToAsync(Stream, CancellationToken)

Szerializálja a HTTP-tartalmat bájtos adatfolyammá, és másolja a paraméterként megadott streamobjektumba stream .

CopyToAsync(Stream, TransportContext, CancellationToken)

Szerializálja a HTTP-tartalmat bájtos adatfolyammá, és másolja a paraméterként megadott streamobjektumba stream .

CopyToAsync(Stream, TransportContext)

Szerializálja a HTTP-tartalmat bájtos adatfolyammá, és másolja a paraméterként megadott streamobjektumba stream .

CopyToAsync(Stream)

Szerializálja a HTTP-tartalmat bájtos adatfolyammá, és másolja a paraméterként megadott streamobjektumba stream .

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.

A következőre érvényes: