HttpContent Clase

Definición

Clase base que representa un cuerpo de entidad HTTP y encabezados de contenido.

public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
    interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
Herencia
HttpContent
Derivado
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra una implementación personalizada de HttpContent. Algunos métodos, a pesar de definirse como virtual y no abstract, deben invalidarse en la implementación para un comportamiento óptimo.

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

Comentarios

Hay varios contenidos HTTP que se pueden usar. Estos incluyen lo siguiente.

  1. ByteArrayContent: un contenido representado por una matriz de bytes, también actúa como una clase base para StringContent y FormUrlEncodedContent.

  2. StringContent: un contenido basado en cadenas, serializado de forma predeterminada como text/plainContent-Type con UTF-8 codificación.

  3. FormUrlEncodedContent: contenido con tuplas de nombre y valor serializadas como application/x-www-form-urlencodedContent-Type.

  4. MultipartContent: contenido que puede serializar varios objetos HttpContent diferentes como multipart/*Content-Type.

  5. JsonContent: contenido que serializa los objetos como application/jsonContent-Type con UTF-8 codificación de forma predeterminada.

Un usuario puede derivar la clase de contenido HTTP para proporcionar lógica de serialización de contenido personalizada.

Constructores

HttpContent()

Inicializa una nueva instancia de la clase HttpContent.

Propiedades

Headers

Obtiene los encabezados de contenido HTTP como se define en RFC 2616.

Métodos

CopyTo(Stream, TransportContext, CancellationToken)

Serializa el contenido HTTP en un flujo de bytes y lo copia en stream.

CopyToAsync(Stream)

Serialice el contenido HTTP en un flujo de bytes y lo copia en el objeto de secuencia proporcionado como parámetro stream.

CopyToAsync(Stream, CancellationToken)

Serialice el contenido HTTP en un flujo de bytes y lo copia en el objeto de secuencia proporcionado como parámetro stream.

CopyToAsync(Stream, TransportContext)

Serialice el contenido HTTP en un flujo de bytes y lo copia en el objeto de secuencia proporcionado como parámetro stream.

CopyToAsync(Stream, TransportContext, CancellationToken)

Serialice el contenido HTTP en un flujo de bytes y lo copia en el objeto de secuencia proporcionado como parámetro stream.

CreateContentReadStream(CancellationToken)

Serializa el contenido HTTP en un flujo de memoria.

CreateContentReadStreamAsync()

Serialice el contenido HTTP en un flujo de memoria como una operación asincrónica.

CreateContentReadStreamAsync(CancellationToken)

Serializa el contenido HTTP en un flujo de memoria como una operación asincrónica.

Dispose()

Libera los recursos no administrados y elimina los recursos administrados usados por el HttpContent.

Dispose(Boolean)

Libera los recursos no administrados usados por el HttpContent y, opcionalmente, elimina los recursos administrados.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
LoadIntoBufferAsync()

Serialice el contenido HTTP en un búfer de memoria como una operación asincrónica.

LoadIntoBufferAsync(CancellationToken)

Clase base que representa un cuerpo de entidad HTTP y encabezados de contenido.

LoadIntoBufferAsync(Int64)

Serialice el contenido HTTP en un búfer de memoria como una operación asincrónica.

LoadIntoBufferAsync(Int64, CancellationToken)

Clase base que representa un cuerpo de entidad HTTP y encabezados de contenido.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ReadAsByteArrayAsync()

Serialice el contenido HTTP en una matriz de bytes como una operación asincrónica.

ReadAsByteArrayAsync(CancellationToken)

Serialice el contenido HTTP en una matriz de bytes como una operación asincrónica.

ReadAsStream()

Serializa el contenido HTTP y devuelve una secuencia que representa el contenido.

ReadAsStream(CancellationToken)

Serializa el contenido HTTP y devuelve una secuencia que representa el contenido.

ReadAsStreamAsync()

Serialice el contenido HTTP y devuelva una secuencia que represente el contenido como una operación asincrónica.

ReadAsStreamAsync(CancellationToken)

Serialice el contenido HTTP y devuelva una secuencia que represente el contenido como una operación asincrónica.

ReadAsStringAsync()

Serialice el contenido HTTP en una cadena como una operación asincrónica.

ReadAsStringAsync(CancellationToken)

Serialice el contenido HTTP en una cadena como una operación asincrónica.

SerializeToStream(Stream, TransportContext, CancellationToken)

Cuando se reemplaza en una clase derivada, serializa el contenido HTTP en una secuencia. De lo contrario, inicia un NotSupportedException.

SerializeToStreamAsync(Stream, TransportContext)

Serialice el contenido HTTP en una secuencia como una operación asincrónica.

SerializeToStreamAsync(Stream, TransportContext, CancellationToken)

Serialice el contenido HTTP en una secuencia como una operación asincrónica.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TryComputeLength(Int64)

Determina si el contenido HTTP tiene una longitud válida en bytes.

Métodos de extensión

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonSerializerOptions, CancellationToken)

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación enumerable asincrónica.

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

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación enumerable asincrónica.

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken)

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación enumerable asincrónica.

ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken)

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación asincrónica.

ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken)

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación asincrónica.

ReadFromJsonAsync(HttpContent, Type, CancellationToken)

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación asincrónica.

ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken)

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación asincrónica.

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

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación asincrónica.

ReadFromJsonAsync<T>(HttpContent, CancellationToken)

Lee el contenido HTTP y devuelve el valor resultante de deserializar el contenido como JSON en una operación asincrónica.

Se aplica a