다음을 통해 공유


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사용자 지정 구현을 보여줍니다. virtual 정의되고 abstract않은 일부 메서드는 최적의 동작을 위해 구현에서 여전히 재정의되어야 합니다.

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-Typeserialize된 콘텐츠입니다.

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

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

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

생성자

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(CancellationToken)

HTTP 엔터티 본문 및 콘텐츠 헤더를 나타내는 기본 클래스입니다.

LoadIntoBufferAsync(Int64)

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

LoadIntoBufferAsync(Int64, CancellationToken)

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 콘텐츠를 스트림으로 직렬화합니다. 그렇지 않으면 NotSupportedExceptionthrow합니다.

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으로 역직렬화하여 발생하는 값을 반환합니다.

적용 대상