HttpContent 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 콘텐츠가 있습니다. 여기에는 다음이 포함되었습니다.
ByteArrayContent - 바이트 배열로 표현되는 콘텐츠는 StringContent 및 FormUrlEncodedContent기본 클래스로도 사용됩니다.
StringContent - 문자열 기반 콘텐츠로, 기본적으로
UTF-8
인코딩을 사용하여text/plain
Content-Type
직렬화됩니다.FormUrlEncodedContent - 이름/값 튜플이
application/x-www-form-urlencoded
Content-Type
serialize된 콘텐츠입니다.MultipartContent - 여러 HttpContent 개체를
multipart/*
Content-Type
serialize할 수 있는 콘텐츠입니다.JsonContent - 기본적으로
UTF-8
인코딩을 사용하여 개체를application/json
Content-Type
serialize하는 콘텐츠입니다.
HTTP 콘텐츠 클래스는 사용자 지정 콘텐츠 serialization 논리를 제공하기 위해 사용자가 파생할 수 있습니다.
생성자
HttpContent() |
HttpContent 클래스의 새 인스턴스를 초기화합니다. |
속성
Headers |
RFC 2616에 정의된 대로 HTTP 콘텐츠 헤더를 가져옵니다. |
메서드
CopyTo(Stream, TransportContext, CancellationToken) |
HTTP 콘텐츠를 바이트 스트림으로 직렬화하고 |
CopyToAsync(Stream) |
HTTP 콘텐츠를 바이트 스트림으로 직렬화하고 |
CopyToAsync(Stream, CancellationToken) |
HTTP 콘텐츠를 바이트 스트림으로 직렬화하고 |
CopyToAsync(Stream, TransportContext) |
HTTP 콘텐츠를 바이트 스트림으로 직렬화하고 |
CopyToAsync(Stream, TransportContext, CancellationToken) |
HTTP 콘텐츠를 바이트 스트림으로 직렬화하고 |
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 콘텐츠에 유효한 길이(바이트)가 있는지 여부를 확인합니다. |
확장 메서드
적용 대상
.NET