문제

달성 할 수있는 대부분의 HttpWebRequest/Response 또한 달성 할 수 있습니다 WebClient 수업. 나는 그 어딘가에 읽었다 WebClient 고급 포장지입니다 WebRequest/Response.
지금까지 나는 달성 할 수있는 것을 볼 수 없습니다. HttpWebRequest/Response 그것은 달성 할 수 없습니다 WebClient, HTTPWebRequest/Response가 귀하에게 더 "세밀한"제어를 제공하는 경우.

언제 WebClient를 사용해야합니까? HttpWebRequest/Response? (확실히, HttpWebRequest/Response http 특이 적입니다.)

만약에 HttpWebRequest/Response 그때 더 낮은 수준입니다 WebClient, 무엇을 달성 할 수 있습니까? HttpWebRequest/Response 내가 달성 할 수없는 것 WebClient?

도움이 되었습니까?

해결책

사용 HttpWebRequest 요청에 대한 더 많은 제어 기능을 제공합니다. 쿠키, 헤더, 프로토콜 등을 설정할 수 있습니다 ... 응답에서 쿠키와 헤더도 검색 할 수도 있습니다.

다른 팁

HttpWebRequest 예를 들어, 고급 프로토콜 제어를 할 수있는 훨씬 더 많은 것들을 노출시킵니다.

WebClient 그 모든 것을 노출 시키지는 않습니다 (서브 클래스에서는 WebClient 그리고 기본 요청 객체에 대한 getAccess).

WebClient 작업을 수행하려는 상황 (예 : Post/Get/Form Upload)을 만들고 HttpWebRequest, RequestStream, HttpWebResponse, 및 응답 스트림.

Tim Heuer의 블로그에서 - http://timheuer.com/blog/archive/2008/03/14/calling-web-services-with-silverlight-2.aspx

Silverlight에서는 WebClient 또는 Httpwebrequest를 사용하고 싶습니다. 차이점이 뭐야? Timheuer 버전은 다음과 같습니다. WebClient는 GET 요청을 쉽게하기 쉽고 응답 스트림을 얻는 더 간단한 구현입니다. httpwebrequest는 요청에 대한 좀 더 세분화 된 제어가 필요하거나 헤더를 보내거나 다른 사용자 정의를 보내야 할 때 좋습니다.

그만큼 웹 클라이언트 클래스는 사용자 인터페이스 스레드에서 실행되므로 인터넷에서 데이터를 다운로드하는 동안 사용자 인터페이스가 응답하지 않습니다. 반면에 httpwebrequest 클래스는 사용자 인터페이스 스레드를 차단하지 않으며 응용 프로그램은 응답합니다. 따라서 인터넷에서 많은 양의 데이터를 다운로드하거나 데이터 소스에 액세스하는 데 속도가 느린 앱에서는 HTTPWebrequest 클래스를 사용해야합니다. 다른 모든 경우에 WebClient 클래스를 사용해야합니다.

httpwebrquest는 압축을 허용하지만 그는 Net.webclient 클래스 HTTP 압축을 지원하지 않습니다.

또 다른 단점 WebClient HTTP를 무시합니까? ContentType'에스 charset 값 응답 텍스트를 얻기 위해 사용하면 값입니다. 인코딩을 명시 적으로 설정해야합니다 Encoding 재산.

"htttpwebrequest"는 .NET 4.5에서 쓸모가 없습니다. 이제이 수업은 내부입니다.

한 가지 예 : 한 번의 요청/응답주기에서 데이터를 게시하고 처리 된 데이터를 되 찾는 것은 WebClient에서는 불가능한 것처럼 보이지만 HTTTPWebRequest로 수행 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top