>백엔드 개발 >C++ >WebClient.DownloadFile()에 대한 시간 초과를 설정하는 방법은 무엇입니까?

WebClient.DownloadFile()에 대한 시간 초과를 설정하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-11 17:41:41593검색

How to Set a Timeout for WebClient.DownloadFile()?

WebClient.DownloadFile() 시간 초과를 효율적으로 관리

WebClient.DownloadFile() 메서드에 대한 시간 초과 설정은 파일 다운로드 시 오랜 지연을 방지하는 데 중요합니다. 이 문서에서는 이 작업에 대한 시간 제한을 설정하는 효율적인 솔루션을 살펴보겠습니다.

기본 클래스 WebDownload를 상속하는 WebClient이라는 파생 클래스를 생성하겠습니다. 사용자 정의 클래스는 Timeout 속성을 ​​도입하여 원하는 시간 초과 값을 설정할 수 있습니다.

WebDownload 클래스에 대한 C# 코드는 다음과 같습니다.

<code class="language-csharp">using System;
using System.Net;

public class WebDownload : WebClient
{
    public int Timeout { get; set; }

    public WebDownload() : this(60000) { }

    public WebDownload(int timeout)
    {
        this.Timeout = timeout;
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        if (request != null)
        {
            request.Timeout = this.Timeout;
        }
        return request;
    }
}</code>

GetWebRequest 메서드를 재정의하면 WebRequest 객체를 가로채고 사용자 정의 클래스에서 지정한 시간 초과 값에 따라 해당 Timeout 속성을 ​​수정할 수 있습니다. 이제 WebDownload 클래스를 사용할 때 초기화 중에 제한 시간 기간을 밀리초 단위로 제공하면 됩니다.

예:

<code class="language-csharp">WebDownload client = new WebDownload(30000); // 设置 30 秒超时
client.DownloadFile("http://example.com/file.zip", "file.zip");</code>

이렇게 하면 30초 제한 시간으로 파일 다운로드가 시작됩니다. 이 시간 내에 다운로드를 완료할 수 없는 경우 예외가 발생하여 상황을 적절하게 처리하고 불필요한 지연을 피할 수 있습니다.

위 내용은 WebClient.DownloadFile()에 대한 시간 초과를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.