HttpContent Classe

Définition

Classe de base représentant un corps d’entité HTTP et des en-têtes de contenu.

public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
    interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
Héritage
HttpContent
Dérivé
Implémente

Exemples

L’exemple suivant montre une implémentation personnalisée de HttpContent. Certaines méthodes, bien qu’elles soient définies comme virtual et non abstract, doivent toujours être remplacées dans l’implémentation pour un comportement optimal.

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));
}

Remarques

Il existe différents contenus HTTP qui peuvent être utilisés. Celles-ci incluent les éléments suivants.

  1. ByteArrayContent - Un contenu représenté par un tableau d’octets sert également de classe de base pour StringContent et FormUrlEncodedContent.

  2. StringContent : contenu basé sur une chaîne, sérialisé par défaut en tant que text/plainContent-Type avec encodage UTF-8.

  3. FormUrlEncodedContent - Contenu avec des tuples nom/valeur sérialisés en tant que application/x-www-form-urlencodedContent-Type.

  4. MultipartContent : contenu qui peut sérialiser plusieurs objets HttpContent différents en tant que multipart/*Content-Type.

  5. JsonContent : contenu qui sérialise les objets en tant que application/jsonContent-Type avec l’encodage UTF-8 par défaut.

La classe de contenu HTTP peut être dérivée par un utilisateur pour fournir une logique de sérialisation de contenu personnalisée.

Constructeurs

HttpContent()

Initialise une nouvelle instance de la classe HttpContent.

Propriétés

Headers

Obtient les en-têtes de contenu HTTP tels que définis dans RFC 2616.

Méthodes

CopyTo(Stream, TransportContext, CancellationToken)

Sérialise le contenu HTTP dans un flux d’octets et le copie dans stream.

CopyToAsync(Stream)

Sérialisez le contenu HTTP dans un flux d’octets et copiez-le dans l’objet de flux fourni en tant que paramètre stream.

CopyToAsync(Stream, CancellationToken)

Sérialisez le contenu HTTP dans un flux d’octets et copiez-le dans l’objet de flux fourni en tant que paramètre stream.

CopyToAsync(Stream, TransportContext)

Sérialisez le contenu HTTP dans un flux d’octets et copiez-le dans l’objet de flux fourni en tant que paramètre stream.

CopyToAsync(Stream, TransportContext, CancellationToken)

Sérialisez le contenu HTTP dans un flux d’octets et copiez-le dans l’objet de flux fourni en tant que paramètre stream.

CreateContentReadStream(CancellationToken)

Sérialise le contenu HTTP dans un flux de mémoire.

CreateContentReadStreamAsync()

Sérialisez le contenu HTTP dans un flux de mémoire en tant qu’opération asynchrone.

CreateContentReadStreamAsync(CancellationToken)

Sérialise le contenu HTTP dans un flux de mémoire en tant qu’opération asynchrone.

Dispose()

Libère les ressources non managées et supprime les ressources managées utilisées par le HttpContent.

Dispose(Boolean)

Libère les ressources non managées utilisées par le HttpContent et supprime éventuellement les ressources managées.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
LoadIntoBufferAsync()

Sérialisez le contenu HTTP vers une mémoire tampon en tant qu’opération asynchrone.

LoadIntoBufferAsync(CancellationToken)

Classe de base représentant un corps d’entité HTTP et des en-têtes de contenu.

LoadIntoBufferAsync(Int64)

Sérialisez le contenu HTTP vers une mémoire tampon en tant qu’opération asynchrone.

LoadIntoBufferAsync(Int64, CancellationToken)

Classe de base représentant un corps d’entité HTTP et des en-têtes de contenu.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ReadAsByteArrayAsync()

Sérialisez le contenu HTTP dans un tableau d’octets en tant qu’opération asynchrone.

ReadAsByteArrayAsync(CancellationToken)

Sérialisez le contenu HTTP dans un tableau d’octets en tant qu’opération asynchrone.

ReadAsStream()

Sérialise le contenu HTTP et retourne un flux qui représente le contenu.

ReadAsStream(CancellationToken)

Sérialise le contenu HTTP et retourne un flux qui représente le contenu.

ReadAsStreamAsync()

Sérialisez le contenu HTTP et retournez un flux qui représente le contenu en tant qu’opération asynchrone.

ReadAsStreamAsync(CancellationToken)

Sérialisez le contenu HTTP et retournez un flux qui représente le contenu en tant qu’opération asynchrone.

ReadAsStringAsync()

Sérialisez le contenu HTTP dans une chaîne en tant qu’opération asynchrone.

ReadAsStringAsync(CancellationToken)

Sérialisez le contenu HTTP dans une chaîne en tant qu’opération asynchrone.

SerializeToStream(Stream, TransportContext, CancellationToken)

En cas de substitution dans une classe dérivée, sérialise le contenu HTTP dans un flux. Sinon, lève une NotSupportedException.

SerializeToStreamAsync(Stream, TransportContext)

Sérialisez le contenu HTTP dans un flux en tant qu’opération asynchrone.

SerializeToStreamAsync(Stream, TransportContext, CancellationToken)

Sérialisez le contenu HTTP dans un flux en tant qu’opération asynchrone.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
TryComputeLength(Int64)

Détermine si le contenu HTTP a une longueur valide en octets.

Méthodes d’extension

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonSerializerOptions, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu en tant que JSON dans une opération énumérable asynchrone.

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonTypeInfo<TValue>, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu en tant que JSON dans une opération énumérable asynchrone.

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu en tant que JSON dans une opération énumérable asynchrone.

ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu au format JSON dans une opération asynchrone.

ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu au format JSON dans une opération asynchrone.

ReadFromJsonAsync(HttpContent, Type, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu au format JSON dans une opération asynchrone.

ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu au format JSON dans une opération asynchrone.

ReadFromJsonAsync<T>(HttpContent, JsonTypeInfo<T>, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu au format JSON dans une opération asynchrone.

ReadFromJsonAsync<T>(HttpContent, CancellationToken)

Lit le contenu HTTP et retourne la valeur qui résulte de la désérialisation du contenu au format JSON dans une opération asynchrone.

S’applique à