HttpContent Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
Poniższy przykład przedstawia niestandardową implementację HttpContent. Niektóre metody, mimo że są zdefiniowane jako virtual
, a 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 HTTP, których można użyć. Należą do nich następujące elementy.
ByteArrayContent — zawartość reprezentowana przez tablicę bajtów, służy również jako klasa bazowa dla StringContent i FormUrlEncodedContent.
StringContent — zawartość oparta na ciągach domyślnie serializowana jako
text/plain
Content-Type
z kodowaniemUTF-8
.FormUrlEncodedContent — zawartość z krotkami nazwa/wartość serializowana jako
application/x-www-form-urlencoded
Content-Type
.MultipartContent — zawartość, która może serializować wiele różnych obiektów HttpContent jako
multipart/*
Content-Type
.JsonContent — zawartość, która domyślnie serializuje obiekty jako
application/json
Content-Type
z kodowaniemUTF-8
.
Klasa zawartości HTTP może być pochodna przez 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 zdefiniowane w dokumencie RFC 2616. |
Metody
CopyTo(Stream, TransportContext, CancellationToken) |
Serializuje zawartość HTTP do strumienia bajtów i kopiuje ją do |
CopyToAsync(Stream, CancellationToken) |
Serializuj zawartość HTTP do strumienia bajtów i kopiuje ją do obiektu strumienia podanego jako parametr |
CopyToAsync(Stream, TransportContext, CancellationToken) |
Serializuj zawartość HTTP do strumienia bajtów i kopiuje ją do obiektu strumienia podanego jako parametr |
CopyToAsync(Stream, TransportContext) |
Serializuj zawartość HTTP do strumienia bajtów i kopiuje ją do obiektu strumienia podanego jako parametr |
CopyToAsync(Stream) |
Serializuj zawartość HTTP do strumienia bajtów i kopiuje ją do obiektu strumienia podanego jako parametr |
CreateContentReadStream(CancellationToken) |
Serializuje zawartość HTTP do strumienia pamięci. |
CreateContentReadStreamAsync() |
Serializuj zawartość HTTP do strumienia pamięci jako operację asynchroniczną. |
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 HttpContent. |
Dispose(Boolean) |
Zwalnia niezarządzane zasoby używane przez HttpContent i opcjonalnie usuwa zasoby zarządzane. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
LoadIntoBufferAsync() |
Serializuj zawartość HTTP do buforu pamięci jako operację asynchroniczną. |
LoadIntoBufferAsync(CancellationToken) |
Serializuj zawartość HTTP do buforu pamięci jako operację asynchroniczną. |
LoadIntoBufferAsync(Int64, CancellationToken) |
Serializuj zawartość HTTP do buforu pamięci jako operację asynchroniczną. |
LoadIntoBufferAsync(Int64) |
Serializuj zawartość HTTP do buforu pamięci jako operację asynchroniczną. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (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() |
Serializowanie zawartości HTTP i zwracanie strumienia reprezentującego zawartość jako operację asynchroniczną. |
ReadAsStreamAsync(CancellationToken) |
Serializowanie zawartości HTTP i zwracanie strumienia reprezentującego zawartość jako operację asynchroniczną. |
ReadAsStringAsync() |
Serializuj zawartość HTTP do ciągu jako operację asynchroniczną. |
ReadAsStringAsync(CancellationToken) |
Serializuj zawartość HTTP do ciągu jako operację asynchroniczną. |
SerializeToStream(Stream, TransportContext, CancellationToken) |
Po zastąpieniu w klasie pochodnej serializuje zawartość HTTP do strumienia. W przeciwnym razie zgłasza NotSupportedException. |
SerializeToStreamAsync(Stream, TransportContext, CancellationToken) |
Serializuj zawartość HTTP do strumienia jako operację asynchroniczną. |
SerializeToStreamAsync(Stream, TransportContext) |
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 kodu 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 kodu JSON w operacji asynchronicznego wyliczania. |
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken) |
Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako kodu JSON w operacji asynchronicznego wyliczania. |
ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken) |
Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako kodu JSON w operacji asynchronicznej. |
ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken) |
Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako kodu JSON w operacji asynchronicznej. |
ReadFromJsonAsync(HttpContent, Type, CancellationToken) |
Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako kodu JSON w operacji asynchronicznej. |
ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken) |
Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako kodu JSON w operacji asynchronicznej. |
ReadFromJsonAsync<T>(HttpContent, JsonTypeInfo<T>, CancellationToken) |
Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako kodu JSON w operacji asynchronicznej. |
ReadFromJsonAsync<T>(HttpContent, CancellationToken) |
Odczytuje zawartość HTTP i zwraca wartość, która wynika z deserializacji zawartości jako kodu JSON w operacji asynchronicznej. |