HttpContent Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Kelas dasar yang mewakili isi entitas HTTP dan header konten.
public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
- Warisan
-
HttpContent
- Turunan
- Penerapan
Contoh
Contoh berikut menunjukkan implementasi kustom HttpContent. Beberapa metode, meskipun didefinisikan sebagai virtual
dan tidak abstract
, masih harus ditimpa dalam implementasi untuk perilaku yang optimal.
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));
}
Keterangan
Ada berbagai konten HTTP yang dapat digunakan. Ini termasuk yang berikut ini.
ByteArrayContent - Konten yang diwakili oleh array byte, juga berfungsi sebagai kelas dasar untuk StringContent dan FormUrlEncodedContent.
StringContent - Konten berbasis string, secara default diserialisasikan sebagai
text/plain
Content-Type
dengan pengodeanUTF-8
.FormUrlEncodedContent - Konten dengan tuple nama/nilai yang diserialisasikan sebagai
application/x-www-form-urlencoded
Content-Type
.MultipartContent - Konten yang dapat menserialisasikan beberapa objek HttpContent yang berbeda sebagai
multipart/*
Content-Type
.JsonContent - Konten yang menserialisasikan objek sebagai
application/json
Content-Type
dengan pengodeanUTF-8
secara default.
Kelas konten HTTP dapat diturunkan oleh pengguna untuk menyediakan logika serialisasi konten kustom.
Konstruktor
HttpContent() |
Menginisialisasi instans baru kelas HttpContent. |
Properti
Headers |
Mendapatkan header konten HTTP seperti yang didefinisikan dalam RFC 2616. |
Metode
CopyTo(Stream, TransportContext, CancellationToken) |
Menserialisasikan konten HTTP ke dalam aliran byte dan menyalinnya ke |
CopyToAsync(Stream, CancellationToken) |
Serialisasi konten HTTP ke dalam aliran byte dan salin ke objek stream yang disediakan sebagai parameter |
CopyToAsync(Stream, TransportContext, CancellationToken) |
Serialisasi konten HTTP ke dalam aliran byte dan salin ke objek stream yang disediakan sebagai parameter |
CopyToAsync(Stream, TransportContext) |
Serialisasi konten HTTP ke dalam aliran byte dan salin ke objek stream yang disediakan sebagai parameter |
CopyToAsync(Stream) |
Serialisasi konten HTTP ke dalam aliran byte dan salin ke objek stream yang disediakan sebagai parameter |
CreateContentReadStream(CancellationToken) |
Menserialisasikan konten HTTP ke aliran memori. |
CreateContentReadStreamAsync() |
Serialisasi konten HTTP ke aliran memori sebagai operasi asinkron. |
CreateContentReadStreamAsync(CancellationToken) |
Menserialisasikan konten HTTP ke aliran memori sebagai operasi asinkron. |
Dispose() |
Merilis sumber daya yang tidak dikelola dan membuang sumber daya terkelola yang digunakan oleh HttpContent. |
Dispose(Boolean) |
Merilis sumber daya yang tidak dikelola yang digunakan oleh HttpContent dan secara opsional membuang sumber daya terkelola. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
LoadIntoBufferAsync() |
Serialisasi konten HTTP ke buffer memori sebagai operasi asinkron. |
LoadIntoBufferAsync(CancellationToken) |
Serialisasi konten HTTP ke buffer memori sebagai operasi asinkron. |
LoadIntoBufferAsync(Int64, CancellationToken) |
Serialisasi konten HTTP ke buffer memori sebagai operasi asinkron. |
LoadIntoBufferAsync(Int64) |
Serialisasi konten HTTP ke buffer memori sebagai operasi asinkron. |
MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
ReadAsByteArrayAsync() |
Serialisasi konten HTTP ke array byte sebagai operasi asinkron. |
ReadAsByteArrayAsync(CancellationToken) |
Serialisasi konten HTTP ke array byte sebagai operasi asinkron. |
ReadAsStream() |
Menserialisasikan konten HTTP dan mengembalikan aliran yang mewakili konten. |
ReadAsStream(CancellationToken) |
Menserialisasikan konten HTTP dan mengembalikan aliran yang mewakili konten. |
ReadAsStreamAsync() |
Serialisasi konten HTTP dan kembalikan aliran yang mewakili konten sebagai operasi asinkron. |
ReadAsStreamAsync(CancellationToken) |
Serialisasi konten HTTP dan kembalikan aliran yang mewakili konten sebagai operasi asinkron. |
ReadAsStringAsync() |
Menserialisasikan konten HTTP ke string sebagai operasi asinkron. |
ReadAsStringAsync(CancellationToken) |
Menserialisasikan konten HTTP ke string sebagai operasi asinkron. |
SerializeToStream(Stream, TransportContext, CancellationToken) |
Saat ditimpa di kelas turunan, menserialisasikan konten HTTP ke aliran. Jika tidak, melemparkan NotSupportedException. |
SerializeToStreamAsync(Stream, TransportContext, CancellationToken) |
Menserialisasikan konten HTTP ke aliran sebagai operasi asinkron. |
SerializeToStreamAsync(Stream, TransportContext) |
Menserialisasikan konten HTTP ke aliran sebagai operasi asinkron. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
TryComputeLength(Int64) |
Menentukan apakah konten HTTP memiliki panjang byte yang valid. |
Metode Ekstensi
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonSerializerOptions, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi yang dapat dijumlahkan asinkron. |
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonTypeInfo<TValue>, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi yang dapat dijumlahkan asinkron. |
ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi yang dapat dijumlahkan asinkron. |
ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi asinkron. |
ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi asinkron. |
ReadFromJsonAsync(HttpContent, Type, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi asinkron. |
ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi asinkron. |
ReadFromJsonAsync<T>(HttpContent, JsonTypeInfo<T>, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi asinkron. |
ReadFromJsonAsync<T>(HttpContent, CancellationToken) |
Membaca konten HTTP dan mengembalikan nilai yang dihasilkan dari deserialisasi konten sebagai JSON dalam operasi asinkron. |