[C#] pobieranie stron

0

Od czasu do czasu gdy pobieram stronę, serwer zwraca "Gateway Timeout." bądź "Bad Gateway", czy istnieje możliwość jakoś zapętlić część kodu żeby próbował pobrać stronę aż błąd serwera zniknie?

0

Tak.

0

Widzę inteligentne odpowiedzi ;) Skoro tak, to w jaki sposób, używam WebClienta

0

W kodzie strony powinno pisać: "502 Bad Gateway" albo coś w tym stylu, więc wykorzystaj Regular Expressions. Jak znajdzie Bad geja w kodzie strony, to spróbuj otworzyć stronę ponownie. Jeżeli nie znajdzie badgeja, to wychodzisz z pętli.

0

Tyle, że mi program crashuje na debugu ;/ podświetla kod, w którym pobierana jest strona więc regexpem nie podejdzie.

0

czyli masz tam chyba jakis blad i pwinienes go tu wkleic prawda ?? jak potrzmujesz pomicy.

0
client.DownloadString(string.Concat(new object[] { strona, "/menu.php" }));

Tutaj nie ma błędu, przecież błędy 5xx są generowane po stronie serwera i właśnie dzieje się to od czasu do czasu, jak trafie to crash programu :D Nawet czasami jak odświeżę ręcznie stronę w przeglądarce pokaże mi błąd. Pewnie sposób "na szybko" wyglądałby tak:

bool sprawdz = true;
             do
             {
                 try
                 {
                     client.DownloadString(string.Concat(new object[] { strona, "/menu.php" }));
                 }
                 catch
                 {
                     sprawdz = false;
                 }
             } while (sprawdz == false);
0

To jest calkiem poprawny sposob...

0

Skoro taki kod jest dobry, to zamieszcze poprawną wersje(w tej wyżej w przypadku błędu - pętla nieskończona), może komuś się przyda :P

bool sprawdz;
             do
             {
                 try
                 {
                     client.DownloadString(string.Concat(new object[] { strona, "/menu.php" }));
                     sprawdz = true;
                 }
                 catch
                 {
                     sprawdz = false;
                 }
             } while (sprawdz == false);

Dzięki

0

Tutaj tez petla nieskonczona. Przydaloby sie ustawic limit prob.

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