WebClient 클래스

2013-12-13

URI로 식별되는 리소스와 데이터를 주고 받기 위한 일반적인 메서드를 제공합니다.

System.Object
  System.Net.WebClient

Namespace:  System.Net
어셈블리:  System.Net(System.Net.dll)

‘선언
Public Class WebClient

WebClient 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드WebClientWebClient 클래스의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 속성AllowReadStreamBufferingWebClient 인스턴스에 대해 인터넷 리소스에서 읽은 데이터를 버퍼링할지 여부를 나타내는 값을 가져오거나 설정합니다.
Public 속성AllowWriteStreamBufferingWebClient 인스턴스에 대해 인터넷 리소스에 쓴 데이터를 버퍼링할지 여부를 나타내는 값을 가져오거나 설정합니다.
Public 속성BaseAddressWebClient의 요청에 대한 기본 URI를 가져오거나 설정합니다.
Public 속성Credentials호스트에 전송되어 요청을 인증하는 데 사용되는 네트워크 자격 증명을 가져오거나 설정합니다.
Public 속성Encoding문자열을 업로드하고 다운로드하는 데 사용되는 Encoding을 가져오거나 설정합니다.
Public 속성Headers요청과 관련된 헤더 이름/값 쌍의 컬렉션을 가져오거나 설정합니다.
Public 속성IsBusy웹 요청이 진행 중인지 여부를 나타내는 값을 가져옵니다.
Public 속성ResponseHeaders응답과 관련된 헤더 이름/값 쌍의 컬렉션을 가져옵니다.
Public 속성UseDefaultCredentials기본 자격 증명을 요청과 함께 보내는지 여부를 제어하는 Boolean 값을 가져오거나 설정합니다.
맨 위

  이름설명
Public 메서드CancelAsync보류 중인 비동기 작업을 취소합니다.
Public 메서드DownloadStringAsync(Uri)리소스를 지정된 Uri에서 문자열로 다운로드합니다.
Public 메서드DownloadStringAsync(Uri, Object)리소스를 지정된 Uri에서 문자열로 다운로드합니다.
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 확인합니다. (Object에서 상속됨)
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드GetWebRequest지정된 리소스에 대한 WebRequest 개체를 반환합니다.
Protected 메서드GetWebResponse지정된 IAsyncResult를 사용하여 지정된 WebRequestWebResponse를 반환합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Protected 메서드OnDownloadProgressChangedDownloadProgressChanged 이벤트를 발생시킵니다.
Protected 메서드OnDownloadStringCompletedDownloadStringCompleted 이벤트를 발생시킵니다.
Protected 메서드OnOpenReadCompletedOpenReadCompleted 이벤트를 발생시킵니다.
Protected 메서드OnOpenWriteCompletedOpenWriteCompleted 이벤트를 발생시킵니다.
Protected 메서드OnUploadProgressChangedUploadProgressChanged 이벤트를 발생시킵니다.
Protected 메서드OnUploadStringCompletedUploadStringCompleted 이벤트를 발생시킵니다.
Protected 메서드OnWriteStreamClosedWriteStreamClosed 이벤트를 발생시킵니다.
Public 메서드OpenReadAsync(Uri)지정된 리소스에 대해 읽을 수 있는 스트림을 엽니다.
Public 메서드OpenReadAsync(Uri, Object)지정된 리소스에 대해 읽을 수 있는 스트림을 엽니다.
Public 메서드OpenWriteAsync(Uri)지정된 리소스에 데이터를 쓰는 데 사용되는 스트림을 엽니다. 이 메서드는 호출 스레드를 차단하지 않습니다.
Public 메서드OpenWriteAsync(Uri, String)지정된 리소스에 데이터를 쓰는 데 사용되는 스트림을 엽니다. 이 메서드는 호출 스레드를 차단하지 않습니다.
Public 메서드OpenWriteAsync(Uri, String, Object)지정된 메서드를 사용하여 지정된 리소스에 데이터를 쓰는 데 사용되는 스트림을 엽니다. 이 메서드는 호출 스레드를 차단하지 않습니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드UploadStringAsync(Uri, String)지정한 문자열을 지정한 리소스로 업로드합니다. 이 메서드는 호출 스레드를 차단하지 않습니다.
Public 메서드UploadStringAsync(Uri, String, String)지정한 문자열을 지정한 리소스로 업로드합니다. 이 메서드는 호출 스레드를 차단하지 않습니다.
Public 메서드UploadStringAsync(Uri, String, String, Object)지정한 문자열을 지정한 리소스로 업로드합니다. 이 메서드는 호출 스레드를 차단하지 않습니다.
맨 위

  이름설명
Public 이벤트DownloadProgressChanged비동기 다운로드 작업을 통해 데이터 전체 또는 일부를 성공적으로 전송하면 발생합니다.
Public 이벤트DownloadStringCompleted비동기 리소스 다운로드 작업이 완료되면 발생합니다.
Public 이벤트OpenReadCompleted비동기 리소스 읽기 작업이 완료되면 발생합니다.
Public 이벤트OpenWriteCompleted리소스에 데이터를 쓸 스트림을 여는 비동기 작업이 완료되면 발생합니다.
Public 이벤트UploadProgressChanged비동기 업로드 작업을 통해 데이터 전체 또는 일부를 성공적으로 전송하면 발생합니다.
Public 이벤트UploadStringCompleted비동기 문자열 업로드 작업이 완료되면 발생합니다.
Public 이벤트WriteStreamClosed비동기 스트림 쓰기 작업이 완료되면 발생합니다.
맨 위

WebClient 클래스는 WebRequest 클래스를 사용하여 리소스에 대한 액세스를 제공합니다.

다음 표에서는 리소스에 데이터를 업로드하는 WebClient 메서드에 대해 설명합니다.

메서드

설명

OpenWriteAsync

호출 스레드를 차단하지 않으면서 리소스에 데이터를 비동기적으로 보내는 데 사용되는 Stream을 검색합니다.

UploadStringAsync

호출 스레드를 차단하지 않으면서 리소스에 String을 보냅니다.

다음 표에서는 리소스에서 데이터를 다운로드하는 WebClient 메서드에 대해 설명합니다.

메서드

설명

DownloadStringAsync

호출 스레드를 차단하지 않으면서 리소스에서 String을 다운로드합니다.

OpenReadAsync

호출 스레드를 차단하지 않으면서 비동기적으로 리소스에서 데이터를 반환합니다.

CancelAsync 메서드를 사용하여 완료되지 않은 비동기 작업을 취소할 수 있습니다.

WebClient 인스턴스는 기본적으로 선택적 HTTP 헤더를 보내지 않습니다. 요청에 선택적 헤더가 필요한 경우에는 헤더를 Headers 컬렉션에 추가해야 합니다.

일부 헤더는 제한된 것으로 간주되며 Content-Type과 같이 직접 노출되거나 WebHeaderCollection 개체에 설정할 수 없도록 시스템에 의해 보호됩니다. Item(HttpRequestHeader) 또는 Item(String) 속성을 사용하여 이러한 제한된 헤더 중 하나를 WebHeaderCollection 개체에 설정하려고 하면 예외가 발생합니다. WebHeaderCollection 개체가 HttpWebRequest 개체와 연결되어 있으면 Item(HttpRequestHeader) 속성에서 예외가 발생합니다. WebHeaderCollection 개체가 WebClient 개체와 연결되어 있으면 WebClient 요청을 보내려고 할 때 예외가 발생합니다.

제한된 헤더의 목록은 WebHeaderCollection 클래스의 설명 부분을 참조하세요.

도메인 간 연결을 통해 응용프로그램은 원래 사이트 이외의 위치에서도 리소스에 액세스할 수 있습니다. 이 기능은 응용프로그램이 웹에서 기존 서비스를 사용하는 데 매우 중요합니다. 보안 정책 시스템에서는 네트워크 연결을 통해 특정 네트워크 리소스에 액세스하려면 해당 네트워크 리소스에서 정책 파일을 먼저 다운로드해야 합니다. 이 보안 정책 시스템은 System.Net 네임스페이스에 포함된 WebClient> 및 HTTP 클래스에 대한 도메인 간 네트워크 액세스에 영향을 줍니다. WebClient 및 HTTP 클래스에 액세스하기 위한 원본 사이트 또는 호스트에 대한 네트워크 연결에는 보안 정책이 필요하지 않습니다.

보안상의 이유로, System.Net 네임스페이스에 있는 WebClient 및 HTTP 클래스의 특정 URL 클래스에 대한 액세스가 제한됩니다. System.Windows.Controls 네임스페이스에 있는 MediaElementSystem.Windows.Controls 클래스를 비롯한 다른 클래스에도 이와 유사한 액세스 제한이 적용됩니다. 또한 URL의 클래스를 기반으로 XAML 소스 파일과 글꼴 파일에도 액세스 제한이 적용됩니다.

이로 인해 영역 간 액세스, 도메인 간 액세스 및 URL 체계 간 액세스 연결이 영향을 받습니다. 이러한 제한은 네트워크 위협을 방지하기 위해 디자인되었습니다.

보안상의 이유로, 대상 도메인 간 사이트에 적용 가능한 보안 정책에서 헤더를 허용하지 않는 한 WebClient 클래스는 도메인 간 사이트에 특정 헤더를 보낼 수 없도록 제한됩니다. 이 제한은 원본 사이트 이외의 위치에 있는 리소스에 적용됩니다. Authorization 헤더는 Headers 속성을 사용하여 설정할 수 있습니다. 하지만 자격 증명을 적절히 설정하려면 대상에 적용 가능한 도메인 간 정책은 인증 헤더를 전송하도록 http-요청-헤더가 설정되어 있어야 합니다.

기능

앱에서 이 API를 사용하는 경우 앱 매니페스트에서 다음 기능을 지정해야 합니다. 그렇지 않으면 앱이 올바르게 작동하지 않거나 예기치 않게 종료될 수 있습니다.

ID_CAP_NETWORKING

Windows Phone 8, Windows Phone OS 7.1

자세한 내용은 Windows Phone의 앱 기능 및 하드웨어 요구 사항을 참조하세요.

버전 메모

Windows Phone

 6개의 웹 서비스 연결은 동시에 허용됩니다. 연결을 사용할 수 있을 때까지 추가 요청은 일시 중지됩니다.

상속자 참고 사항

파생 클래스가 제대로 동작하려면 파생 클래스에서 기본 클래스에 구현된 WebClient를 호출해야 합니다.

Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

표시:
© 2014 Microsoft