Bagikan melalui


HttpContent Kelas

Definisi

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.

  1. ByteArrayContent - Konten yang diwakili oleh array byte, juga berfungsi sebagai kelas dasar untuk StringContent dan FormUrlEncodedContent.

  2. StringContent - Konten berbasis string, secara default diserialisasikan sebagai text/plainContent-Type dengan pengodean UTF-8.

  3. FormUrlEncodedContent - Konten dengan tuple nama/nilai yang diserialisasikan sebagai application/x-www-form-urlencodedContent-Type.

  4. MultipartContent - Konten yang dapat menserialisasikan beberapa objek HttpContent yang berbeda sebagai multipart/*Content-Type.

  5. JsonContent - Konten yang menserialisasikan objek sebagai application/jsonContent-Type dengan pengodean UTF-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 stream.

CopyToAsync(Stream, CancellationToken)

Serialisasi konten HTTP ke dalam aliran byte dan salin ke objek stream yang disediakan sebagai parameter stream.

CopyToAsync(Stream, TransportContext, CancellationToken)

Serialisasi konten HTTP ke dalam aliran byte dan salin ke objek stream yang disediakan sebagai parameter stream.

CopyToAsync(Stream, TransportContext)

Serialisasi konten HTTP ke dalam aliran byte dan salin ke objek stream yang disediakan sebagai parameter stream.

CopyToAsync(Stream)

Serialisasi konten HTTP ke dalam aliran byte dan salin ke objek stream yang disediakan sebagai parameter stream.

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.

Berlaku untuk