"udawanie przeglądarki" i cookies

0

Witam!
Chcę napisać aplikację-bota do automatycznego przeglądania konkretnej strony www.

Niestety, strona ta wymaga obsługi cookies, tzn:

  • ja wysyłam jej cos takiego: login.php?user=username&haslo=blabla
  • ona ustawia mi ciastko z numerem sesji php
  • wchodze na glowna.php
  • stronka pobiera moj cookie i jesli jest ok to dziala, a jesli nie to wraca do index.php (HTTP 302).

No więc chcę zaemulować to w Dephi 7 z Indy.
Z pierwszym podpunktem nie ma problemu. Używam IdHTTP.Post z odpowiednimi parametrami, stronka się ładuje, a w IdCookieManager ląduje ciastko. Sprawdzam zawartość cookiemanagera - ciastko siedzi i wygląda prawidłowo.
No to teraz Robię IdHTTP.Get(glowna.php) i... 302, dostaję index.php.

Najlepsza rzecz, że włączam sniffer sieciowy i okazuje się, że Delphi NIE WYSŁAŁ w ogóle tego ciastka, chociaż powinien. Nagłówek z explorera (przy prawidłowym zalogowaniu) jest taki:

GET /current_sector.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, /
Referer: http://www.tdzk.net/login.php
Accept-Language: pl
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Crazy Browser 1.0.5)
Host: www.tdzk.net
Connection: Keep-Alive
Cookie: TDZK_IMAGE_PACK_PATH=file%3A%2F%2F%2Fc%3A%2Ftdzk%2Ftwilight%2F; TDZK_CSS_SKIN=1; trackingKey=105535652139393; TDZK_Main=acf514e2da0cbe728e78b079118d8f49

mniejsza o te wszystkie śmieci, najważniejsze że Delphi pomija linijkę Cookie: ...

Próbowałem dodać CustomHeaders w ten sposób:
IdHTTP1.Request.CustomHeaders.Add(CiasteczkowyString); gdzie CiasteczkowyString zawierał to co powinien, ale Delphi dalej tego nie wysyła. Gdzieś w helpie Indiego znalazłem że IdHTTP korzysta z tego tylko przy odbieraniu czy coś...

W każdym razie moje pytanie brzmi:

  • czy da się to zrobić z IdHTTP i jeśli tak, to jak?
  • jeśli nie, to jak "zaemulować" IdHTTP, czyli zrobić to ręcznie? (otworzyć połączenie z serwerem na porcie 80, coś wysłać, coś odebrać... wiadomo o co chodzi).

Będę wdzięczny za każdą pomoc!

Pozdrawiam,
DzinX
[email protected]

0

aha, probowalem uzywac IdHTTP.Request.ExtraHeaders ktore proponuje ktos w innym poscie, ale w moim Indy 9 (standardowo w Delphi 7) go nie ma, jest tylko CustomHeaders a to nie działa...

0

Czyżby się kłaniał programik do nabijania kliknięć w buttony top-list????

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