Come limitare il tempo DownloadString(url) ha permesso di 500 millisecondi?

Sto scrivendo un programma che quando textBox1 modifica:

URL = "http://example.com/something/";
URL += System.Web.HttpUtility.UrlEncode(textBox1.Text);
s = new System.Net.WebClient().DownloadString(URL);

Voglio limitare il tempo DownloadString(URL) ha permesso di 500 millisecondi. Se più di cancellazione.

InformationsquelleAutor Tuyen Pham | 2012-10-14

 

2 Replies
  1. 31

    Tale proprietà non è disponibile, ma puoi estendere con facilità la WebClient:

    public class TimedWebClient: WebClient
    {
        //Timeout in milliseconds, default = 600,000 msec
        public int Timeout { get; set; }
    
        public TimedWebClient()
        {
            this.Timeout = 600000; 
        }
    
        protected override WebRequest GetWebRequest(Uri address)
        {
            var objWebRequest= base.GetWebRequest(address);
            objWebRequest.Timeout = this.Timeout;
            return objWebRequest;
        }
    }
    
    //use
    string s = new TimedWebClient {Timeout = 500}.DownloadString(URL);
    • Avuto un problema con un popolare i tassi di cambio, nel sito ammessi conneciton ma le loro API non inviare una risposta – questa piccola pepita è l’ideale patch, molto obbligato.
    • Ora guardo di nuovo e ho imparato abbastanza per sapere che la risposta diriectly di rispondere alla mia domanda. Cambiare accecpted per la tua risposta.
  2. 7

    Un modo per farlo sarebbe quello di utilizzare il DownloadStringAsync metodo la classe WebClient, e quindi in modo asincrono chiamare il CancelAsync metodo dopo 500 millisecondi. Vedere la sezione osservazioni qui di alcune indicazioni su come fare.

    In alternativa, è possibile utilizzare la classe WebRequest, invece, che ha una proprietà di Timeout. Vedere l’esempio di codice qui.

Lascia un commento