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보여줍니다. 일부 메서드는 가 아닌 abstractvirtual 정의되어 있음에도 불구하고 최적의 동작을 위해 구현에서 여전히 재정의되어야 합니다.

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- 바이트 배열로 표현되는 콘텐츠는 및 FormUrlEncodedContent에 대한 StringContent 기본 클래스로도 사용됩니다.

  2. StringContent - 인코딩과 함께 text/plainContent-TypeUTF-8 기본적으로 직렬화된 문자열 기반 콘텐츠입니다.

  3. FormUrlEncodedContent - 로 직렬화된 application/x-www-form-urlencodedContent-Type이름/값 튜플이 있는 콘텐츠입니다.

  4. MultipartContent - 여러 개체 HttpContent 를 로 multipart/*Content-Type직렬화할 수 있는 콘텐츠입니다.

  5. JsonContent - 기본적으로 인코딩을 사용하여 개체 application/jsonContent-TypeUTF-8 를 로 직렬화하는 콘텐츠입니다.

HTTP 콘텐츠 클래스는 사용자 지정 콘텐츠 serialization 논리를 제공하기 위해 사용자가 파생할 수 있습니다.

생성자

HttpContent()

HttpContent 클래스의 새 인스턴스를 초기화합니다.

속성

Headers

RFC 2616에 정의된 대로 HTTP 콘텐츠 헤더를 가져옵니다.

메서드

CopyTo(Stream, TransportContext, CancellationToken)

HTTP 콘텐츠를 바이트 스트림으로 직렬화하고 stream에 복사합니다.

CopyToAsync(Stream)

HTTP 콘텐츠를 바이트 스트림으로 serialize한 후 stream 매개 변수로 제공되는 스트림 개체로 복사합니다.

CopyToAsync(Stream, CancellationToken)

HTTP 콘텐츠를 바이트 스트림으로 serialize한 후 stream 매개 변수로 제공되는 스트림 개체로 복사합니다.

CopyToAsync(Stream, TransportContext)

HTTP 콘텐츠를 바이트 스트림으로 serialize한 후 stream 매개 변수로 제공되는 스트림 개체로 복사합니다.

CopyToAsync(Stream, TransportContext, CancellationToken)

HTTP 콘텐츠를 바이트 스트림으로 serialize한 후 stream 매개 변수로 제공되는 스트림 개체로 복사합니다.

CreateContentReadStream(CancellationToken)

HTTP 콘텐츠를 메모리 스트림으로 직렬화합니다.

CreateContentReadStreamAsync()

HTTP 콘텐츠를 비동기 작업으로 메모리 스트림으로 serialize합니다.

CreateContentReadStreamAsync(CancellationToken)

HTTP 콘텐츠를 비동기 작업으로 메모리 스트림으로 직렬화합니다.

Dispose()

관리되지 않는 리소스를 해제하고, HttpContent에서 사용하는 관리되는 리소스를 삭제합니다.

Dispose(Boolean)

HttpContent에서 사용하는 관리되지 않는 리소스를 해제하고 관리되는 리소스를 선택적으로 삭제할 수 있습니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
LoadIntoBufferAsync()

HTTP 콘텐츠를 비동기 작업으로 메모리 버퍼로 serialize합니다.

LoadIntoBufferAsync(Int64)

HTTP 콘텐츠를 비동기 작업으로 메모리 버퍼로 serialize합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ReadAsByteArrayAsync()

HTTP 콘텐츠를 비동기 작업으로 바이트 배열로 serialize합니다.

ReadAsByteArrayAsync(CancellationToken)

HTTP 콘텐츠를 비동기 작업으로 바이트 배열로 serialize합니다.

ReadAsStream()

HTTP 콘텐츠를 직렬화하고 콘텐츠를 나타내는 스트림을 반환합니다.

ReadAsStream(CancellationToken)

HTTP 콘텐츠를 직렬화하고 콘텐츠를 나타내는 스트림을 반환합니다.

ReadAsStreamAsync()

HTTP 콘텐츠를 serialize하고 콘텐츠를 나타내는 스트림을 비동기 작업으로 반환합니다.

ReadAsStreamAsync(CancellationToken)

HTTP 콘텐츠를 serialize하고 콘텐츠를 나타내는 스트림을 비동기 작업으로 반환합니다.

ReadAsStringAsync()

HTTP 콘텐츠를 비동기 작업으로 문자열로 serialize합니다.

ReadAsStringAsync(CancellationToken)

HTTP 콘텐츠를 비동기 작업으로 문자열로 serialize합니다.

SerializeToStream(Stream, TransportContext, CancellationToken)

파생 클래스에서 재정의된 경우 HTTP 콘텐츠를 스트림으로 직렬화합니다. 그렇지 않으면 NotSupportedException이 throw됩니다.

SerializeToStreamAsync(Stream, TransportContext)

HTTP 콘텐츠를 비동기 작업으로 스트림으로 serialize합니다.

SerializeToStreamAsync(Stream, TransportContext, CancellationToken)

HTTP 콘텐츠를 비동기 작업으로 스트림으로 serialize합니다.

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으로 역직렬화한 결과 생성된 값을 반환합니다.

적용 대상