HttpContent Classe
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Uma classe base que representa um corpo de entidade HTTP e cabeçalhos de conteúdo.
public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
- Herança
-
HttpContent
- Derivado
- Implementações
O exemplo a seguir mostra uma implementação personalizada de HttpContent. Alguns métodos, apesar de serem definidos como virtual
e não abstract
, ainda devem ser substituídos na implementação para um comportamento ideal.
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));
}
Há vários conteúdos HTTP que podem ser usados. Isso inclui o seguinte.
ByteArrayContent - Um conteúdo representado por uma matriz de bytes, também serve como uma classe base para StringContent e FormUrlEncodedContent.
StringContent – um conteúdo baseado em cadeia de caracteres, por padrão serializado como
text/plain
Content-Type
com codificaçãoUTF-8
.FormUrlEncodedContent - Um conteúdo com tuplas de nome/valor serializadas como
application/x-www-form-urlencoded
Content-Type
.MultipartContent - Um conteúdo que pode serializar vários objetos HttpContent diferentes como
multipart/*
Content-Type
.JsonContent – um conteúdo que serializa objetos como
application/json
Content-Type
com codificaçãoUTF-8
por padrão.
A classe de conteúdo HTTP pode ser derivada por um usuário para fornecer lógica de serialização de conteúdo personalizada.
Http |
Inicializa uma nova instância da classe HttpContent. |
Headers |
Obtém os cabeçalhos de conteúdo HTTP conforme definido no RFC 2616. |
Copy |
Serializa o conteúdo HTTP em um fluxo de bytes e copia-o para |
Copy |
Serialize o conteúdo HTTP em um fluxo de bytes e copie-o para o objeto de fluxo fornecido como o parâmetro |
Copy |
Serialize o conteúdo HTTP em um fluxo de bytes e copie-o para o objeto de fluxo fornecido como o parâmetro |
Copy |
Serialize o conteúdo HTTP em um fluxo de bytes e copie-o para o objeto de fluxo fornecido como o parâmetro |
Copy |
Serialize o conteúdo HTTP em um fluxo de bytes e copie-o para o objeto de fluxo fornecido como o parâmetro |
Create |
Serializa o conteúdo HTTP para um fluxo de memória. |
Create |
Serialize o conteúdo HTTP em um fluxo de memória como uma operação assíncrona. |
Create |
Serializa o conteúdo HTTP para um fluxo de memória como uma operação assíncrona. |
Dispose() |
Libera os recursos não gerenciados e descarta os recursos gerenciados usados pelo HttpContent. |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo HttpContent e, opcionalmente, descarta os recursos gerenciados. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Get |
Serve como a função de hash padrão. (Herdado de Object) |
Get |
Obtém o Type da instância atual. (Herdado de Object) |
Load |
Serialize o conteúdo HTTP em um buffer de memória como uma operação assíncrona. |
Load |
Serialize o conteúdo HTTP em um buffer de memória como uma operação assíncrona. |
Load |
Serialize o conteúdo HTTP em um buffer de memória como uma operação assíncrona. |
Load |
Serialize o conteúdo HTTP em um buffer de memória como uma operação assíncrona. |
Memberwise |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
Read |
Serialize o conteúdo HTTP em uma matriz de bytes como uma operação assíncrona. |
Read |
Serialize o conteúdo HTTP em uma matriz de bytes como uma operação assíncrona. |
Read |
Serializa o conteúdo HTTP e retorna um fluxo que representa o conteúdo. |
Read |
Serializa o conteúdo HTTP e retorna um fluxo que representa o conteúdo. |
Read |
Serialize o conteúdo HTTP e retorne um fluxo que representa o conteúdo como uma operação assíncrona. |
Read |
Serialize o conteúdo HTTP e retorne um fluxo que representa o conteúdo como uma operação assíncrona. |
Read |
Serialize o conteúdo HTTP em uma cadeia de caracteres como uma operação assíncrona. |
Read |
Serialize o conteúdo HTTP em uma cadeia de caracteres como uma operação assíncrona. |
Serialize |
Quando substituído em uma classe derivada, serializa o conteúdo HTTP para um fluxo. Caso contrário, lança um NotSupportedException. |
Serialize |
Serialize o conteúdo HTTP em um fluxo como uma operação assíncrona. |
Serialize |
Serialize o conteúdo HTTP em um fluxo como uma operação assíncrona. |
To |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Try |
Determina se o conteúdo HTTP tem um comprimento válido em bytes. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação enumerável assíncrona. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação enumerável assíncrona. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação enumerável assíncrona. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação assíncrona. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação assíncrona. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação assíncrona. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação assíncrona. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação assíncrona. |
Read |
Lê o conteúdo HTTP e retorna o valor resultante da desserialização do conteúdo como JSON em uma operação assíncrona. |
Produto | Versões |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: