Windows.Web.Http 네임스페이스
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
UWP 앱용 최신 HTTP 클라이언트 API를 제공합니다.
클래스
HttpBufferContent |
버퍼를 사용하는 HTTP 콘텐츠를 제공합니다. |
HttpClient |
HTTP 요청을 보내고 URI로 식별된 리소스에서 HTTP 응답을 받습니다. HttpClient 클래스 및 코드 예제에 대한 프로그래밍 지침은 HttpClient 개념 항목을 참조하세요. |
HttpCookie |
HTTP 쿠키를 관리하는 속성 및 메서드 집합을 제공합니다. |
HttpCookieCollection |
HttpCookie 클래스의 인스턴스에 대한 컬렉션 컨테이너를 제공합니다. |
HttpCookieManager |
HttpCookie를 추가하거나 삭제하거나 앱과 연결된 쿠키를 봅니다. |
HttpFormUrlEncodedContent |
application/x-www-form-urlencoded MIME 형식으로 인코딩된 이름/값 데이터를 사용하는 HTTP 콘텐츠를 제공합니다. |
HttpGetBufferResult |
최종 버퍼 결과를 원래 HTTP 요청, 결과 HTTP 응답(있는 경우), 확장된 오류 값 및 성공 표시와 결합합니다. |
HttpGetInputStreamResult |
최종 입력 스트림 결과를 원래 HTTP 요청, 결과 HTTP 응답(있는 경우), 확장된 오류 값 및 성공한 표시와 결합합니다. |
HttpGetStringResult |
최종 문자열 결과를 원래 HTTP 요청, 결과 HTTP 응답(있는 경우), 확장된 오류 값 및 성공 표시와 결합합니다. |
HttpMethod |
GET 및 POST와 같은 표준 HTTP 메서드를 검색하고 새 HTTP 메서드를 만듭니다. |
HttpMultipartContent |
multipart/* MIME 형식을 사용하는 HTTP 콘텐츠를 제공합니다. |
HttpMultipartFormDataContent |
다중 파트/양식 데이터 MIME 형식을 사용하는 HTTP 콘텐츠를 제공합니다. |
HttpRequestMessage |
헤더를 포함한 HTTP 요청 메시지를 나타냅니다. |
HttpRequestResult |
원래 HTTP 요청을 결과 HTTP 응답(있는 경우), 확장된 오류 값 및 성공한 표시와 결합합니다. |
HttpResponseMessage |
헤더, 상태 코드 및 데이터를 포함한 HTTP 응답 메시지를 나타냅니다. |
HttpStreamContent |
스트림을 사용하는 HTTP 콘텐츠를 제공합니다. |
HttpStringContent |
문자열을 사용하는 HTTP 콘텐츠를 제공합니다. |
HttpTransportInformation |
HTTP 연결에서 사용하는 기본 전송에 대한 정보를 제공합니다. |
구조체
HttpProgress |
HttpClient 작업의 진행률에 대한 상태 정보를 포함합니다. |
인터페이스
IHttpContent |
HTTP 엔터티 본문 및 콘텐츠 헤더에 대한 기본 인터페이스를 제공합니다. |
열거형
HttpCompletionOption |
모든 응답을 읽을 때 또는 헤더만 읽을 때 비동기 HttpClient 작업이 완료된 것으로 간주되는지 여부를 나타냅니다. |
HttpProgressStage |
HTTP 연결 진행 중 단계를 나타냅니다. |
HttpResponseMessageSource |
HttpResponseMessage에서 받은 데이터의 원본을 나타냅니다. |
HttpStatusCode |
HTTP 요청에 대한 응답에서 HTTP에 대해 정의된 상태 코드의 값을 포함합니다. |
HttpVersion |
HTTP 프로토콜 버전을 나타냅니다. |
예제
다음 샘플 코드에서는 HTTP 서버에서 콘텐츠를 문자열로 가져오는 방법을 보여 있습니다.
using System;
using Windows.Foundation;
using Windows.Web.Http;
// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
var uri = new Uri("http://example.com/datalist.aspx");
var httpClient = new HttpClient();
// Always catch network exceptions for async methods
try
{
var result = await httpClient.GetStringAsync(uri);
}
catch (Exception ex)
{
// Details in ex.Message and ex.HResult.
}
// Once your app is done using the HttpClient object call dispose to
// free up system resources (the underlying socket and memory used for the object)
httpclient.Dispose();
#include "winrt/Windows.Foundation.h"
#include "winrt/Windows.Web.Http.h"
using namespace winrt;
Windows::Foundation::IAsyncAction HttpClientExample()
{
Windows::Foundation::Uri uri{ L"http://www.bing.com" };
Windows::Web::Http::HttpClient httpClient{};
// Always catch network exceptions for async methods.
try
{
auto response{ co_await httpClient.GetStringAsync(uri) };
}
catch (winrt::hresult_error const& ex)
{
// Details in ex.message() and ex.to_abi().
}
// The destructor of HttpClient frees system resources
// (the underlying socket, and memory used for the object).
}
using namespace Windows::Foundation;
using namespace Windows::Web::Http;
// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
uri = ref new Uri("http://example.com/datalist.aspx");
httpClient = ref new HttpClient();
// Always catch network exceptions for async methods
try
{
httpClient->GetStringAsync(uri);
}
catch (Exception ^ ex)
{
// Details in ex.Message and ex.HResult.
}
// In C++/CX, the system resources used by httpClient object are released
// when the object falls out of scope or by the destructor (delete operator).
설명
Windows.Web.Http 네임스페이스 및 관련 Windows.Web.Http.Headers 및 Windows.Web.Http.Filters 네임스페이스는 HTTP 및 REST 서비스를 대상으로 하는 UWP 앱에 대한 프로그래밍 인터페이스를 제공합니다. 이 새로운 HTTP API의 이 기능은 IETF에서 RFC 2616 에 정의된 HTTP를 준수하도록 설계되었습니다. 새 HTTP API는 개발자를 위한 JavaScript, C#, VB.NET 및 C++에서 일관된 지원을 제공합니다.
이 새로운 API는 Windows 8의 각 언어 프로젝션에 이전에 필요했던 다른 기능으로 세 가지 API의 사용을 대체합니다.
- JavaScript용 WinJS.xhr
- C# 및 VB용 System.Net.Http 네임스페이스의 HttpClient입니다.
- C++용 IXMLHTTPRequest2
Windows.Web.Http 및 관련 네임스페이스의 클래스는 모든 수준의 HTTP 및 REST 개발을 대상으로 합니다.
- 기본 HTTP 개발자
- 사이트별 HTTP 라이브러리 개발자
- 고급 HTTP 개발자
기본 HTTP 개발자의 경우 새 API에는 대부분의 환경에서 작동해야 하는 가장 일반적인 작업 및 인증에 대한 합리적인 기본값을 처리하는 간단한 인터페이스가 있습니다. 라이브러리 개발자의 경우 일관된 개체 모델과 여러 언어 지원을 통해 개발자를 위해 모든 언어로 라이브러리를 한 번 작성할 수 있습니다. 고급 HTTP 개발자의 경우 새 API에는 다양한 기능 집합이 포함되어 있습니다.
Windows.Web.Http 네임스페이스 및 관련 네임스페이스는 다음 구성 요소를 제공합니다.
- HttpClient - HTTP를 통해 요청을 보내고 받는 기본 클래스입니다.
- HttpRequestMessage - RFC 2616에 정의된 HTTP 요청 메시지입니다.
- HttpResponseMessage - RFC 2616에 정의된 HTTP 응답 메시지입니다.
HTTP 메시지의 내용은 RFC 2616에 정의된 엔터티 본문에 해당합니다. 다음과 같은 여러 클래스와 Windows.Web.Http 네임스페이스의 인터페이스를 HTTP 콘텐츠에 사용할 수 있습니다.
- IHttpContent - 개발자가 자체 콘텐츠 개체를 만들 수 있는 기본 인터페이스입니다. HTTP 엔터티 본문 및 콘텐츠 헤더를 나타냅니다. 이 인터페이스에는 실제 콘텐츠 데이터를 가져와서 설정하는 메서드가 있습니다. 또한 콘텐츠 관련 헤더를 가져와서 설정하는 속성도 제공합니다.
- HttpBufferContent - 버퍼를 사용하는 HTTP 콘텐츠입니다.
- HttpFormUrlEncodedContent - application/x-www-form-urlencoded MIME 형식으로 인코딩된 이름/값 튜플을 사용하는 HTTP 콘텐츠입니다.
- HttpMultipartContent - 다중 파트/* MIME 형식을 사용하는 HTTP 콘텐츠입니다.
- HttpMultipartFormDataContent - 인코딩된 multipart/form-data MIME 형식을 사용하는 HTTP 콘텐츠입니다.
- HttpStreamContent - 스트림을 사용하는 HTTP 콘텐츠입니다. 이 콘텐츠 형식은 HTTP GET 메서드에서 데이터를 수신하고 HTTP POST 메서드를 사용하여 데이터를 업로드합니다.
- HttpStringContent - 문자열을 사용하는 HTTP 콘텐츠입니다.
Windows.Web.Http.Headers 네임스페이스의 클래스는 RFC 2616에 정의된 HTTP 헤더를 나타냅니다. HTTP 헤더는 HttpRequestMessage 및 HttpResponseMessage 와 검색되거나 설정된 속성으로 연결됩니다.
Windows.Web.Http 네임스페이스의 클래스는 Windows.Web.Http.Filters 네임스페이스의 클래스에 따라 필터를 사용할 수 있습니다. 필터는 일반적인 HTTP 서비스 문제에 도움이 되는 처리기를 제공합니다. 더 복잡한 HTTP 서비스 문제를 해결하기 위해 필터를 시퀀스로 함께 연결할 수 있습니다. 라이브러리 개발자가 일반적인 HTTP 서비스 문제를 해결하는 데 도움이 되는 몇 가지 바로 사용 가능한 필터가 Windows 8.1 포함되어 있습니다. 이러한 필터에는 모니터링되는 네트워크 연결 및 다시 시도에 대한 처리기가 포함됩니다. 라이브러리 개발자는 사이트별 문제에 대한 자체 필터를 작성할 수 있습니다(예: 사이트에서 503(서버를 사용할 수 없음) 응답을 사용하여 요청을 다시 시도해야 함을 나타낼 수 있습니다.
Windows.Web.Http 네임스페이스와 관련된 Windows.Web.Http.Headers 및 Windows.Web.Http.Filters 네임스페이스를 사용하는 앱이 대량의 데이터(50MB 이상)를 다운로드하는 경우 앱은 해당 다운로드를 스트리밍하고 기본 버퍼링을 사용하지 않아야 합니다. 기본 버퍼링을 사용하는 경우 클라이언트 메모리 사용량이 매우 커져 성능이 저하될 수 있습니다.
HttpClient를 사용하여 HTTP 서버에 연결하는 방법을 보여 주는 C#/VB/C++ 및 XAML의 샘플 코드는 HttpClient를 참조하세요.
HttpClient를 사용하여 HTTP 서버에 연결하는 방법을 보여 주는 JavaScript 및 HTML의 샘플 코드는 Windows.Web.Http를 사용하여 HTTP 서버에 연결을 참조하세요.