안녕하세요~ 선생님 또 놀러 왔습니다. ~ ^^;;
최근 업무자동화로 클롤링을 준비하게 되어 Seleninum으로 스터디 중에 클롤링 한 파일을 다운로드 할때 2개의 클래스의 차이점을 알고 싶어 문의 드립니다.
1. WebClient 클래스와 HttpClient 차이점에 대하여 궁금 합니다.
2. WebClient로 구현했을때 동기/비동기로 잘 다운로드 됩니다.
using (WebClient client = new WebClient())
{
client.DownloadFile(new Uri(url), @"c:\temp\image.jpg"); // 동기
client.DownloadFileAsync(new Uri(url), @"c:\temp\image.jpg"); // 비동기
}
하지만 MS doc에 보면
https://docs.microsoft.com/ko-kr/dotnet/api/system.net.webclient?view=netframework-4.7.2
설명
중요
새 개발에는 클래스를 사용 하지 않는 것이 좋습니다 WebClient
. 대신는 System.Net.Http.HttpClient 클래스입니다.
라고 나오며 HttpClient를 권장하는 듯한 메시지가 있어 HttpClient를 사용하는 것이 좋은지?
서로 차이점이 무엇인지 궁금 합니다.
3. HttpClient으로도 기본 비동기가 지원되어 구현하여 다운로드 하는데 문제는 없어 보입니다.
단지 HttpClient이 좀더 세밀한 옵션과 바이트방식의 데이터 처리 등을 지원하는것 같습니다.
그리고 System.IO.File로 파일을 작성해야 하는것 같습니다. 저는 이렇게 구현하긴 했지만...
제가 실시간 화상회의나 데이터 처리를 하는 것은 아니기에 무엇을 사용하든 상관 없지만 이번기회에 두 클래스의 차이점을 알고 싶습니다. ~