HttpContent Klasa

Definicja

Klasa bazowa reprezentująca treść jednostki HTTP i nagłówki zawartości.

public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
    interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
Dziedziczenie
HttpContent
Pochodne
Implementuje

Przykłady

W poniższym przykładzie przedstawiono niestandardową implementację elementu HttpContent. Niektóre metody, mimo że są zdefiniowane jako virtual i nie abstract, powinny być nadal zastępowane w implementacji w celu uzyskania optymalnego zachowania.

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

Uwagi

Istnieje wiele zawartości PROTOKOŁU HTTP, których można użyć. Należą do nich następujące elementy.

  1. ByteArrayContent - Zawartość reprezentowana przez tablicę bajtów, służy również jako klasa bazowa dla StringContent i FormUrlEncodedContent.

  2. StringContent - Zawartość oparta na ciągach, domyślnie serializowana jako text/plainContent-Type kodowanie UTF-8 .

  3. FormUrlEncodedContent - Zawartość z krotkami name/value serializowanymi jako application/x-www-form-urlencodedContent-Type.

  4. MultipartContent - Zawartość, która może serializować wiele różnych HttpContent obiektów jako multipart/*Content-Type.

  5. JsonContent - Zawartość, która serializuje obiekty tak jak application/jsonContent-Type w UTF-8 przypadku kodowania domyślnie.

Klasa zawartości HTTP może pochodzić od użytkownika w celu zapewnienia niestandardowej logiki serializacji zawartości.

Konstruktory

HttpContent()

Inicjuje nowe wystąpienie klasy HttpContent.

Właściwości

Headers

Pobiera nagłówki zawartości HTTP zgodnie z definicją w dokumencie RFC 2616.

Metody

CopyTo(Stream, TransportContext, CancellationToken)

Serializuje zawartość HTTP do strumienia bajtów i kopiuje ją do stream.

CopyToAsync(Stream)

Serializuj zawartość HTTP do strumienia bajtów i kopiuje ją do obiektu strumienia podanego stream jako parametr.

CopyToAsync(Stream, CancellationToken)

Serializuj zawartość HTTP do strumienia bajtów i kopiuje ją do obiektu strumienia podanego stream jako parametr.

CopyToAsync(Stream, TransportContext)

Serializuj zawartość HTTP do strumienia bajtów i kopiuje ją do obiektu strumienia podanego stream jako parametr.

CopyToAsync(Stream, TransportContext, CancellationToken)

Serializuj zawartość HTTP do strumienia bajtów i kopiuje ją do obiektu strumienia podanego stream jako parametr.

CreateContentReadStream(CancellationToken)

Serializuje zawartość HTTP do strumienia pamięci.

CreateContentReadStreamAsync()

Serializowanie zawartości HTTP do strumienia pamięci jako operacji asynchronicznej.

CreateContentReadStreamAsync(CancellationToken)

Serializuje zawartość HTTP do strumienia pamięci jako operację asynchroniczną.

Dispose()

Zwalnia niezarządzane zasoby i usuwa zasoby zarządzane używane przez HttpContentprogram .

Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez HttpContent program i opcjonalnie usuwa zasoby zarządzane.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
LoadIntoBufferAsync()

Serializuje zawartość HTTP do buforu pamięci jako operację asynchroniczną.

LoadIntoBufferAsync(Int64)

Serializuje zawartość HTTP do buforu pamięci jako operację asynchroniczną.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ReadAsByteArrayAsync()

Serializuj zawartość HTTP do tablicy bajtów jako operację asynchroniczną.

ReadAsByteArrayAsync(CancellationToken)

Serializuj zawartość HTTP do tablicy bajtów jako operację asynchroniczną.

ReadAsStream()

Serializuje zawartość HTTP i zwraca strumień reprezentujący zawartość.

ReadAsStream(CancellationToken)

Serializuje zawartość HTTP i zwraca strumień reprezentujący zawartość.

ReadAsStreamAsync()

Serializuj zawartość HTTP i zwraca strumień reprezentujący zawartość jako operację asynchroniczną.

ReadAsStreamAsync(CancellationToken)

Serializuj zawartość HTTP i zwraca strumień reprezentujący zawartość jako operację asynchroniczną.

ReadAsStringAsync()

Serializowanie zawartości HTTP do ciągu jako operacji asynchronicznej.

ReadAsStringAsync(CancellationToken)

Serializowanie zawartości HTTP do ciągu jako operacji asynchronicznej.

SerializeToStream(Stream, TransportContext, CancellationToken)

Po przesłonięciu w klasie pochodnej serializuje zawartość HTTP do strumienia. W przeciwnym razie zgłasza wartość NotSupportedException.

SerializeToStreamAsync(Stream, TransportContext)

Serializuj zawartość HTTP do strumienia jako operację asynchroniczną.

SerializeToStreamAsync(Stream, TransportContext, CancellationToken)

Serializuj zawartość HTTP do strumienia jako operację asynchroniczną.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TryComputeLength(Int64)

Określa, czy zawartość HTTP ma prawidłową długość w bajtach.

Metody rozszerzania

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonSerializerOptions, CancellationToken)

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako JSON w operacji asynchronicznego wyliczania.

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

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako JSON w operacji asynchronicznego wyliczania.

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken)

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako JSON w operacji asynchronicznego wyliczania.

ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken)

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako pliku JSON w operacji asynchronicznej.

ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken)

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako pliku JSON w operacji asynchronicznej.

ReadFromJsonAsync(HttpContent, Type, CancellationToken)

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako pliku JSON w operacji asynchronicznej.

ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken)

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako pliku JSON w operacji asynchronicznej.

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

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako pliku JSON w operacji asynchronicznej.

ReadFromJsonAsync<T>(HttpContent, CancellationToken)

Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako pliku JSON w operacji asynchronicznej.

Dotyczy