次の方法で共有


HttpContent クラス

定義

HTTP エンティティ本体とコンテンツ ヘッダーを表す基本クラス。

public ref class HttpContent abstract : IDisposable
public abstract class HttpContent : IDisposable
type HttpContent = class
    interface IDisposable
Public MustInherit Class HttpContent
Implements IDisposable
継承
HttpContent
派生
実装

次の例は、HttpContentのカスタム実装を示しています。 abstractではなく virtual として定義されているにもかかわらず、最適な動作を実現するために、一部のメソッドは引き続き実装でオーバーライドする必要があります。

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));
}

注釈

使用できるさまざまな HTTP コンテンツがあります。 これらには、次のようなものがあります。

  1. ByteArrayContent - バイト配列で表されるコンテンツは、StringContentFormUrlEncodedContentの基底クラスとしても機能します。

  2. StringContent - 文字列ベースのコンテンツ。既定では、UTF-8 エンコードを使用して text/plainContent-Type としてシリアル化されます。

  3. FormUrlEncodedContent - application/x-www-form-urlencodedContent-Typeとしてシリアル化された名前/値のタプルを含むコンテンツ。

  4. MultipartContent - 複数の異なる HttpContent オブジェクトを multipart/*Content-Typeとしてシリアル化できるコンテンツ。

  5. JsonContent - 既定で UTF-8 エンコードを使用してオブジェクトを application/jsonContent-Type としてシリアル化するコンテンツ。

HTTP コンテンツ クラスは、ユーザーがカスタム コンテンツシリアル化ロジックを提供するために派生させることができます。

コンストラクター

HttpContent()

HttpContent クラスの新しいインスタンスを初期化します。

プロパティ

Headers

RFC 2616 で定義されている HTTP コンテンツ ヘッダーを取得します。

メソッド

CopyTo(Stream, TransportContext, CancellationToken)

HTTP コンテンツをバイト ストリームにシリアル化し、streamにコピーします。

CopyToAsync(Stream)

HTTP コンテンツをバイト ストリームにシリアル化し、stream パラメーターとして指定されたストリーム オブジェクトにコピーします。

CopyToAsync(Stream, CancellationToken)

HTTP コンテンツをバイト ストリームにシリアル化し、stream パラメーターとして指定されたストリーム オブジェクトにコピーします。

CopyToAsync(Stream, TransportContext)

HTTP コンテンツをバイト ストリームにシリアル化し、stream パラメーターとして指定されたストリーム オブジェクトにコピーします。

CopyToAsync(Stream, TransportContext, CancellationToken)

HTTP コンテンツをバイト ストリームにシリアル化し、stream パラメーターとして指定されたストリーム オブジェクトにコピーします。

CreateContentReadStream(CancellationToken)

HTTP コンテンツをメモリ ストリームにシリアル化します。

CreateContentReadStreamAsync()

HTTP コンテンツを非同期操作としてメモリ ストリームにシリアル化します。

CreateContentReadStreamAsync(CancellationToken)

HTTP コンテンツを非同期操作としてメモリ ストリームにシリアル化します。

Dispose()

アンマネージ リソースを解放し、HttpContentによって使用されるマネージド リソースを破棄します。

Dispose(Boolean)

HttpContent によって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを破棄します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
LoadIntoBufferAsync()

HTTP コンテンツを非同期操作としてメモリ バッファーにシリアル化します。

LoadIntoBufferAsync(Int64)

HTTP コンテンツを非同期操作としてメモリ バッファーにシリアル化します。

MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
ReadAsByteArrayAsync()

HTTP コンテンツを非同期操作としてバイト配列にシリアル化します。

ReadAsByteArrayAsync(CancellationToken)

HTTP コンテンツを非同期操作としてバイト配列にシリアル化します。

ReadAsStream()

HTTP コンテンツをシリアル化し、コンテンツを表すストリームを返します。

ReadAsStream(CancellationToken)

HTTP コンテンツをシリアル化し、コンテンツを表すストリームを返します。

ReadAsStreamAsync()

HTTP コンテンツをシリアル化し、コンテンツを非同期操作として表すストリームを返します。

ReadAsStreamAsync(CancellationToken)

HTTP コンテンツをシリアル化し、コンテンツを非同期操作として表すストリームを返します。

ReadAsStringAsync()

HTTP コンテンツを非同期操作として文字列にシリアル化します。

ReadAsStringAsync(CancellationToken)

HTTP コンテンツを非同期操作として文字列にシリアル化します。

SerializeToStream(Stream, TransportContext, CancellationToken)

派生クラスでオーバーライドされると、HTTP コンテンツをストリームにシリアル化します。 それ以外の場合は、NotSupportedExceptionをスローします。

SerializeToStreamAsync(Stream, TransportContext)

HTTP コンテンツを非同期操作としてストリームにシリアル化します。

SerializeToStreamAsync(Stream, TransportContext, CancellationToken)

HTTP コンテンツを非同期操作としてストリームにシリアル化します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
TryComputeLength(Int64)

HTTP コンテンツの長さがバイト単位で有効かどうかを判断します。

拡張メソッド

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonSerializerOptions, CancellationToken)

HTTP コンテンツを読み取り、非同期列挙可能な操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, JsonTypeInfo<TValue>, CancellationToken)

HTTP コンテンツを読み取り、非同期列挙可能な操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

ReadFromJsonAsAsyncEnumerable<TValue>(HttpContent, CancellationToken)

HTTP コンテンツを読み取り、非同期列挙可能な操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

ReadFromJsonAsync(HttpContent, Type, JsonSerializerOptions, CancellationToken)

HTTP コンテンツを読み取り、非同期操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

ReadFromJsonAsync(HttpContent, Type, JsonSerializerContext, CancellationToken)

HTTP コンテンツを読み取り、非同期操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

ReadFromJsonAsync(HttpContent, Type, CancellationToken)

HTTP コンテンツを読み取り、非同期操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

ReadFromJsonAsync<T>(HttpContent, JsonSerializerOptions, CancellationToken)

HTTP コンテンツを読み取り、非同期操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

ReadFromJsonAsync<T>(HttpContent, JsonTypeInfo<T>, CancellationToken)

HTTP コンテンツを読み取り、非同期操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

ReadFromJsonAsync<T>(HttpContent, CancellationToken)

HTTP コンテンツを読み取り、非同期操作でコンテンツを JSON として逆シリアル化した結果の値を返します。

適用対象