@ShookOnesPtII: no po to ci wyjątki wymyślili, żebyś je używał :> Metoda niech wywala wyjątek jeżeli timeout :>
Piszę to ogólnie, bo nie znam C#, ale no po to wymyślili to cudeńko jak wyjątki (które są w każdym poważnym języku programowania), żeby życie ułatwić :>
@Godlike_Atheist: To akurat w osobnym wątku się robi, więc nie przeszkadza. W sumie nie wiem czy ten Sleep tam musi być czy nie... Jeżeli networkStream.Read(buffer, 0, buffer.Length); czeka aż dane się "załadują", to Sleep jest zbędny.
Najprostsze sprawa to skorzystać z StringBuildera. Generalnie powinno się unikać "dodawania" stringów. Można też np. napisać jakieś extension method np. public static StringBuilder AppendHeader(this StringBuilder sb, string header, string value) albo w ogóle zamknąć requesta w jakiejś klasie jak będziesz z niego często korzystał. Zasada jest taka - pomyśl jakbyś chciał z czegoś korzystać, a potem napisz kod, który Ci to umożliwi :).
@japer: Wiem, no o to mi chodzi. Ani httpwebrequest ani webclientem NIE DA SIĘ zalogować na wordpressie. Trza na socketach. Wtedy czytam ciastka i zapisuję ręcznie do cookiecontainer.
Jak zabezpieczyć ten kod przed wywalaniem aplikacji? Coś oprócz Try {} Catch{} (brzydki kod).
http://pastebin.com/t5kdpJb8
Jest to kawałek metody służącej do logowania na jakikolwiek blog WordPress.
Wywaliło mi przy TcpClient client = new TcpClient(fulladdress, 80). Komunikat związany z timeoutem.
Piszę to ogólnie, bo nie znam C#, ale no po to wymyślili to cudeńko jak wyjątki (które są w każdym poważnym języku programowania), żeby życie ułatwić :>
Najprostsze sprawa to skorzystać z StringBuildera. Generalnie powinno się unikać "dodawania" stringów. Można też np. napisać jakieś extension method np. public static StringBuilder AppendHeader(this StringBuilder sb, string header, string value) albo w ogóle zamknąć requesta w jakiejś klasie jak będziesz z niego często korzystał. Zasada jest taka - pomyśl jakbyś chciał z czegoś korzystać, a potem napisz kod, który Ci to umożliwi :).
Generalnie zrobiłem to w taki sposób:
http://pastebin.com/maJT6inn
Response sprawdzam później (trzeba sprawdzić czy zalogowano poprawnie, wiadomo).