HttpContent Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Een basisklasse die de hoofdtekst en inhoudsheaders van een HTTP-entiteit vertegenwoordigt.
public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
- Overname
-
HttpContent
- Afgeleid
- Implementeringen
Voorbeelden
In het volgende voorbeeld ziet u een aangepaste implementatie van HttpContent. Sommige methoden, ondanks dat ze zijn gedefinieerd als virtual en niet abstract, moeten nog steeds worden overschreven in de implementatie voor optimaal gedrag.
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));
}
Opmerkingen
Er zijn verschillende HTTP-inhoud die kan worden gebruikt. Deze omstandigheden zijn:
ByteArrayContent - Een inhoud die wordt vertegenwoordigd door een bytematrix, fungeert ook als basisklasse voor StringContent en FormUrlEncodedContent.
StringContent - Een inhoud op basis van tekenreeksen, standaard geserialiseerd als
text/plainContent-TypemetUTF-8codering.FormUrlEncodedContent - Een inhoud met tuples met naam/waarde geserialiseerd als
application/x-www-form-urlencodedContent-Type.MultipartContent - Een inhoud die meerdere verschillende HttpContent objecten kan serialiseren als
multipart/*Content-Type.JsonContent - Een inhoud waarmee objecten standaard worden geserialiseerd als
application/jsonContent-TypemetUTF-8codering.
HTTP-inhoudsklasse kan worden afgeleid door een gebruiker om aangepaste logica voor inhoudsserialisatie te bieden.
Constructors
| Name | Description |
|---|---|
| HttpContent() |
Initialiseert een nieuw exemplaar van de HttpContent klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Headers |
Haalt de HTTP-inhoudsheaders op zoals gedefinieerd in RFC 2616. |
Methoden
| Name | Description |
|---|---|
| CopyToAsync(Stream, TransportContext) |
Serialiseer de HTTP-inhoud in een stroom van bytes en kopieert deze naar het streamobject dat is opgegeven als de |
| CopyToAsync(Stream) |
Serialiseer de HTTP-inhoud in een stroom van bytes en kopieert deze naar het streamobject dat is opgegeven als de |
| CreateContentReadStreamAsync() |
Serialiseer de HTTP-inhoud naar een geheugenstroom als een asynchrone bewerking. |
| Dispose() |
Publiceert de onbeheerde resources en verwijdert de beheerde resources die door de HttpContent. |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de HttpContent beheerde resources en verwijdert desgewenst de beheerde resources. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| LoadIntoBufferAsync() |
Serialiseer de HTTP-inhoud naar een geheugenbuffer als asynchrone bewerking. |
| LoadIntoBufferAsync(Int64) |
Serialiseer de HTTP-inhoud naar een geheugenbuffer als asynchrone bewerking. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ReadAsByteArrayAsync() |
Serialiseer de HTTP-inhoud naar een bytematrix als asynchrone bewerking. |
| ReadAsStreamAsync() |
Serialiseer de HTTP-inhoud en retourneer een stream die de inhoud vertegenwoordigt als asynchrone bewerking. |
| ReadAsStringAsync() |
Serialiseer de HTTP-inhoud naar een tekenreeks als asynchrone bewerking. |
| SerializeToStreamAsync(Stream, TransportContext) |
Serialiseer de HTTP-inhoud naar een stream als asynchrone bewerking. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| TryComputeLength(Int64) |
Bepaalt of de HTTP-inhoud een geldige lengte heeft in bytes. |