c# 웹에서 파일 다운로드
이전 예제에서는 DownloadFile 메서드의 작동 방식을 이해해야 합니다. 그러나 메서드를 구현 하 고 구체화 하는 방법에 따라 달라 집니다. 또한 WebClient 클래스에서 DownloadFileAsync 메서드를 사용할 수 있습니다. 지정된 URI를 사용하여 리소스를 로컬 파일에 다운로드합니다. 또한이 메서드는 호출 스레드를 차단 하지 않습니다. 비동기 다운로드는 초기 DNS 조회(호스트 이름을 IP 주소로 변환)를 제외한 주 프로그램 스레드를 차단하지 않습니다. IP 주소를 직접 사용하면 이러한 지연을 방지할 수 있습니다. 이 방법은 좀 더 관련이 있지만 다운로드가 완료 될 때까지 기다릴 수없는 경우 큰 파일을 다운로드해야하는 경우 가장 좋은 방법입니다. 약간의 트릭을 사용하여 네트워크인터페이스에서 GetIsNetworkAvailable : 데이터를 다운로드할 문자열로 지정된 URI를 사용하여 사용할 수 있는 인터넷이 없는 경우 빈 파일이 생성되지 않도록 할 수 있습니다. System.Net;공용 클래스 WebClientWithTimeout:WebClient{ 보호 된 재정의 WebRequest GetWebRequest (Uri 주소) { WebRequest wr = 베이스를 사용 하 여.
GetWebRequest(주소); Wr. 시간 시간 : 5000; 시간 시간(ms)의 시간 아웃은 wr을 반환합니다. }}… 문자열 일부 문자열; try{ WebClient wc = 새 WebClientWithTimeout(); 일부 문자열 = wc. 다운로드 스트링(«http://www.example.com/somefile.txt»);} catch (WebException 우리){ // 오류 처리 MessageBox.Show (우리)의 일종을 추가합니다. ToString());} 참고: 비동기 메서드를 사용 하지만 잠시 동안 기본 스레드를 차단할 수 있습니다. 비동기 다운로드 자체가 DNS 이름(이 경우 «mysite.com»)을 확인하고 이 검사는 내부적으로 차단 기능을 통해 수행되기 때문입니다. 도메인 이름 대신 직접 IP를 사용하는 경우 DownloadFileAsync 메서드는 완전히 비동기가 됩니다. 이 예제에서는 모든 웹 사이트에서 로컬 디스크로 파일을 다운로드하는 방법을 보여 줍니다. 파일을 다운로드하는 방법은 WebClient 클래스와 그 방법 DownloadFile을 사용하는 것입니다. 이 메서드에는 두 개의 매개 변수가 있으며, 먼저 다운로드할 파일의 URL이고 두 번째 매개 변수는 파일을 저장할 로컬 디스크에 대한 경로입니다.
… WebClient wc = 새 웹 클라이언트();wc) Headers.Add(«사용자 에이전트», «모질라/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 도마뱀처럼)»);일부 문자열 = wc. 다운로드 스트링(«http://www.example.com/somefile.txt»); … DownloadFile 메서드는 주소 매개 변수에 의해 지정된 URI에서 로컬 파일 데이터에 다운로드합니다. 이 메서드는 리소스를 다운로드하는 동안 차단합니다. 리소스를 다운로드하고 서버의 응답을 기다리는 동안 계속 실행하려면 DownloadFileAsync 방법 중 하나를 사용합니다.
Comments are currently closed.