Problem z HttpWebRequest (found 302)

0

Taka sprawa. Pomysł był żeby za pomocą HttpWebRequesta spróbować zescrapować z wymagającej logowania strony pewne informacje. Zabrałem się do tego następująco:

  • Fiddlerem sprawdziłem co strona wysyła do serwera podczas logowania.
  • Stworzyłem we własnym projekcie analogiczny request, który po wysłaniu zwracał cookie służący jako potwierdzenie zalogowania.
  • Wstawiłem otrzymany cookie w Header dla kolejnych Requestów i próbowałem dobrać się do otrzymanego Htmla.

I tu pojawia się problem. Serwer co prawda odpowiada Htmlem, który mnie interesuje, ale mimo, że Request typu GET który wysyłam, wydaje się identyczny jak ten słany przez stronę, jako odpowiedź serwera, zamiast odpowiedzi "200 OK", zawsze dostaję "302 FOUND", po czym serwer "przekierowuje" mnie na stronę do logowania.
Trochę "na czuja" aby móc dostać się do wysyłanego w pierwszej odpowiedzi htmlu obszedłem ten problem ustawiając właściwość HttpWebRequestu AllowAutoRedirect na false i blokując przekierowanie. Więc w zasadzie wszystko działa tyle, że wciąż przy każdym zapytaniu dostaję "302 FOUND", a nie chciałbym, żeby z powodu zbyt dużej liczby takich zapytań właściciel strony zablokował mi konto.
Czy ktoś ma jakieś pomysły o co tu chodzi?

0

Źle mówię. Serwer zachowuje się jakbym wcale nie był zalogowany. A tego htmla który mnie interesuje, to wysyła, jak się okazuje zawsze, gdy użytkownik nie jest zalogowany, tylko z poziomu przeglądarki tego nie widać bo od razu jest przekierowanie.

0

No to request wydaje się identyczny, czy jest identyczny? w szczególności heder tak powinieneś spreparować by pod fidlerem wyglądał tak samo jak z przeglądarki z zalogowanym użytkownikiem.

0

Jest identyczny. Ale jeszcze jedna ciekawostka. Gdy wkleję do requesta z aplikacji cookie otrzymane po zalogowaniu przez przeglądarkę. Otrzymuję wreszcie to co chcę, czyli 200 OK. Muszę coś plątać przy requescie logującym...

0

Witam,

Moze po stronie serwera nastepuje przekierowanie zapytania gdzies glebiej albo jakies dadatkowe informacje sa przekazywane pomiedzy zapytaniami a twoj kod tego nie interpretuje. Nawet odpalenie jakiegos JS moze powodowac ze twoje zapytnie nie jest potwierdzane jako wlasciwe
Pozdrawiam,

mr-owl

0

Dzięki. Teraz tego nie sprawdzę bo już wyjechałem na święta, ale myślę że po prostu dałem do pieca przy logowaniu, a wysłanie przez.serwer cookie błędnie wziąłem za poprawne zalogowanie.
Nigdy tego nie robiłem i chciałem się tu upewnić, że samo podejście do tematu jest w miarę właściwe.
Swoją drogą, czy to nie dziwne, że po błędnym zalogowaniu serwer odpowiada przesyłając dane, które teoretycznie widoczne powinny być tylko dla zalogowanych użytkowników, a dopiero później przekierowuje na stronę do logowania. A może w tym szaleństwie jest jakaś metoda?

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