WebClient.OpenRead i ReadTimeout który nigdy nie zachodzi

0

Szukam pomocy przy korzystaniu z ReadTimeout klasy Stream. Chciałbym móc pobierać treści www z określonym timeoutem. Zakodziłem coś takiego:

string ReadUrlWithTimeout(string url, int timeout)
{
            var webClient = new WebClient();
            var webStream = webClient.OpenRead(url);
            webStream.ReadTimeout = 1;
            return new StreamReader(webStream).ReadToEnd();
}

1 ms powinna skreślić chyba większość stron internetowych, tymczasem funkcja ta zwraca treści stron np. z Australii.

Dlaczego to działa? Co mogę zrobić by się faktycznie timeoutował?

0

Ustawiasz timeout nie na samym połączeniu, na czytaniu otwartego już strumienia (a tam zapewne na nic już czekać nie trzeba, jeżeli serwer przepchnął wszystko na raz). Jeżeli chcesz nadal korzystać z WebClient to musisz zrobić to nieco inaczej.
http://www.codeproject.com/Tips/69637/Setting-timeout-property-for-System-Net-WebClient

0

Dzięki Rev. Tego szukałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1