Share via


웹 서비스에 연결(HTML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

이러한 항목에서는 Windows 런타임 앱에서 웹 서비스에 연결하는 다양한 방법을 보여 줍니다. 권장되는 방법은 모든 언어에 사용 가능한 새로운 Windows 런타임 클래스인 Windows.Web.Http.HttpClient를 사용하는 것입니다. 이 클래스는 앱에서 웹 서비스에 액세스하는 데 사용할 수 있는 전체 기능을 제공하는 강력한 API입니다.

Windows.Web.Http 네임스페이스의 클래스는 최신 HTTP 클라이언트 앱용 프로그래밍 인터페이스를 제공합니다. Windows.Web.Http 네임스페이스와 관련 Windows.Web.Http.HeadersWindows.Web.Http.Filters 네임스페이스는 사용자가 HTTP를 통해 HTTP 요청을 수행하고 최신 웹 서비스에서 HTTP 응답을 받을 수 있게 하는 HTTP 클라이언트 구성 요소를 제공합니다.

기본 HTTP 요청 작업의 경우 Windows.Web.Http.HttpClient에는 가장 일반적인 작업을 처리하기 위한 단순 인터페이스가 있고 이 API는 대부분의 시나리오에 적용되는 인증(AUTH)에 대한 합리적인 기본값을 제공합니다. 더 복잡한 HTTP 작업의 경우 많은 추가 접근 권한 값을 사용할 수 있습니다.

이 섹션의 항목에서는 WinJS.xhr이라는 XMLHttpRequest의 JavaScript 래퍼용 Windows 라이브러리에 대해서도 설명합니다. WinJS.xhr은 앱에서 웹 콘텐츠에 액세스하는 편리한 방법을 제공합니다. WinJS.xhr을 사용하여 임의 형식의 파일 및 콘텐츠를 다운로드하거나 업로드하는 HTTP 또는 HTTPS 요청을 할 수 있습니다.

비동기식으로 요청해야 하는지 여부를 지정할 수 있는 XMLHttpRequest와 달리 WinJS.xhr은 항상 비동기식입니다. WinJS.xhrWinJS.Promise를 반환하므로 then 또는 done 메서드를 사용하여 완료된 요청, 오류 및 진행 중인 요청을 처리할 수 있습니다.

경고  이제 XMLHttpRequest를 사용하여 Blob 개체 및 FormData 개체와 같이 완료하는 데 시간이 오래 걸릴 수 있는 매우 큰 개체를 전송할 수 있습니다. Windows.Web.Http.HttpClient를 사용하여 스트림을 포함하는 매우 큰 개체를 보내거나 받을 수도 있습니다. 앱은 언제든지 종료할 수 있으므로 이러한 작업에 Windows.Networking.BackgroundTransfer 네임스페이스의 백그라운드 전송을 사용하는 것을 고려해야 합니다. 큰 콘텐츠 업로드 및 다운로드에 대한 자세한 내용은 파일을 업로드하는 방법백그라운드에서 데이터 전송을 참조하세요.

 

다음 표에서는 JavaScript로 작성한 앱에서 웹 서비스에 액세스하는 데 사용할 수 있는 API를 보여 줍니다. 플랫폼은 기능이 처음 추가된 Windows 버전을 나타냅니다.

API 플랫폼 설명

Windows.Web.Http.HttpClient

Windows 8.1, Windows Phone 8.1, Windows Server 2012 R2

데이터를 보내고 받기 위해 HTTP 서버에 연결하는 권장 방법입니다.

이 기능은 JavaScript, C#, Visual Basic 및 C++로 작성한 앱에서도 지원됩니다.

WinJS.xhr Windows 8, Windows Phone 8.1, Windows Server 2012,

Windows 8 및 Windows Server 2012에서 XMLHttpRequest가 적절하지 않은 경우의 권장 방법이었습니다.

XMLHttpRequest Windows 8, Windows Phone 8.1, Windows Server 2012 이 개체와 API는 대부분의 최신 웹 브라우저의 JavaScript 구현에서 사용할 수 있습니다.

 

대상 개발자 그룹

JavaScript 및 HTML을 사용하여 웹 서비스에 연결하는 앱을 만들려고 하는 개발자

이 항목의 정보는 JavaScript 및 HTML로 작성된 앱에 적용됩니다.

C++/XAML로 작성한 앱 및 .NET Framework 4.5를 사용하고 C# 또는 Visual Basic으로 작성한 앱용 웹 서비스에 연결하는 방법에 대한 자세한 내용은 웹 서비스에 연결(XAML)을 참조하세요.

이 조항의 내용

항목 설명

Windows.Web.Http를 사용하여 HTTP 서버에 연결하는 방법

GET 요청을 웹 서비스에 보내고 Windows.Web.Http 네임스페이스의 Windows.Web.Http.HttpClient 클래스를 사용하여 응답을 검색합니다.

HTTPS 연결을 요구하는 방법

"ms-https-connections-only" meta 요소 값을 사용하면 앱에서 탐색 또는 기타 미디어 외 웹 콘텐츠 검색에 HTTP 연결을 사용하는 것을 막을 수 있습니다. 이 meta 요소의 content 특성을 "true"로 설정하면 HTTP 탐색 및 미디어 외 웹 콘텐츠 검색이 실패합니다.

WinJS.xhr을 사용하여 파일을 다운로드하는 방법

WinJS.xhr은 앱에서 웹 콘텐츠를 다운로드하는 편리한 방법을 제공합니다. 이 항목에서는 WinJS.xhr을 사용하여 파일을 다운로드하고, 오류를 처리하고, 다운로드 진행률을 보고하는 방법을 설명합니다. 또한 각 콘텐츠 형식을 다운로드하는 방법도 보여 줍니다.

WinJS.xhr을 사용하여 이진 데이터를 업로드하는 방법

XMLHttpRequest를 래핑하는 WinJS.xhr을 사용할 때는 이진 데이터를 업로드 및 다운로드할 수 있습니다. 이 예제에서는 사진에서 비트맵을 업로드하는 방법을 보여줍니다. 비트맵 파일을 여는 데 사용되는 Windows 런타임 메서드는 IRandomAccessStream을 반환하므로, MSApp.createBlobFromRandomAccessStream을 사용하여 Blob로 변환해야 합니다.

경고  이제는 XMLHttpRequest를 사용하여 Blob 개체 및 FormData 개체와 같이 완료하는 데 시간이 오래 걸릴 수 있는 몇 MB보다 큰 개체를 업로드하거나 다운로드할 수 있습니다. 앱은 언제든지 종료할 수 있으므로 이러한 작업에 Windows 런타임 백그라운드 전송 API를 사용하는 것을 고려해야 합니다. 콘텐츠 업로드 및 다운로드에 대한 자세한 내용은 파일을 업로드하는 방법파일을 다운로드하는 방법을 참조하세요. 백그라운드 전송에 대한 일반적인 설명은 Transferring data in the background을 참조하세요.
 

WinJS.xhr이 요청을 다시 보내도록 하는 방법

WinJS.xhr을 사용하여 웹 리소스를 요청하면 응답이 캐시될 수 있습니다. 즉, 이후 요청에서 요청을 다시 보내지 않고 클라이언트 컴퓨터에 이미 있는 리소스 버전을 반환합니다. 그러나 이미 캐시된 경우에도 요청을 다시 보내도록 HTTP 헤더를 추가할 수 있습니다.

WinJS.xhr 또는 HttpClient를 사용하여 시간 제한 값 설정

XMLHttpRequest를 사용하는 경우 시간 제한 값을 직접 설정할 수 있지만 Windows.Web.Http.HttpClient 또는 WinJS.xhr을 사용할 때는 직접 설정할 수 없습니다. 그러나 WinJS.Promise 개체에 시간 제한을 설정하는 방법이 있습니다. WinJS.Promise.timeout을 호출하면 지정한 시간 내에 요청이 완료되지 않을 경우 요청이 취소됩니다.

WinJS.xhr을 사용하여 매시업을 만드는 방법

매시업이란 둘 이상의 소스에서 온 데이터를 사용해 새로운 것을 만드는 웹 응용 프로그램입니다. 이 예제에서는 XMLHttpRequest(XHR)를 사용하여 원격 RSS(Really Simple Syndication) 피드를 검색 및 표시하는 방법을 보여 줍니다.

 

관련 항목

다른 리소스

앱 접근 권한 값 선언

네트워크 앱에서 예외 처리

네트워크 격리 접근 권한 값을 구성하는 방법

루프백을 사용하도록 설정하고 네트워크 격리를 디버그하는 방법

참조

Windows.Foundation.Uri

Windows.Web.Http

Windows.Web.Http.Filters

Windows.Web.Http.Headers

Windows.Web.Http.HttpClient

WinJS.xhr

XMLHttpRequest

샘플

HttpClient 샘플

웹 서비스의 콘텐츠 및 컨트롤 통합 샘플

Blob을 사용하여 콘텐츠 저장 및 로드 샘플

웹 인증 샘플

XHR, 탐색 오류 처리 및 URL 구성표 샘플