Munka a cookie twebbrowser alkatrész (olvasás, uchtanovka)
Munka a cookie TWebBrowser alkatrész (olvasás, uchtanovka)
Itt volt egy kérdés a cookie TWebBrowser komponens.
A kérdésem két részből
1) Az első rész készítésére vonatkozik, cookie-k
2) A második rész - az átadási / sütik telepítését megelőzően a nyitólapra
Az első rész a kérdés úgy döntött az internet volt elegendő dokumentációt a cookie lehet tekinteni a OLE felületen, nevezetesen
myCookie: = (WebBrowser1.Document mint IhtmlDocument2) .cookie;
De a második rész sokkal nehezebb. Keresés itt sokáig jutott erre a következtetésre, ha a cookie viszi át a fejlécet, hogy szükséges hozzá a lekérdezés kéznél, nevezetesen:
Fejlécek: = StringToVarArray ( "cookie: test_cookie = 123456789" # 13, # 10);
StringToVarArray funkció szükséges átalakítani egy String, a Variant típusú. Funkció kód nagyon egyszerű:
funkció StringToVarArray (const S: string): Variant;
# XA0; var
# XA0; # XA0; i: integer;
kezdődik
# XA0; Eredmény: = VarArrayCreate ([0, hossza (S) - 1], varByte);
# XA0; i: = 1 hossza (S) do
# XA0; # XA0; Eredmény [i-1]: = ORD (S [i]);
végén;
A végén mindent meg kell, mint a csokoládé, de nifiga nem működik :-), vagy csak a cookie-kat, hanem POSTDATA.
Azt hiszem, ez a kis cikk lesz az érdeke, akkor előfordulhat, hogy csinálok rosszul?
ps Tesztelés költ a helyi számítógépen telepített Apache. readcockie.php script tartalmát jeleníti meg a POST és a cookie-tömb.
pps A sütik telepítését keresztül IdHTTP komponens lehet banális keresztül fejléc és azt hiszem, hogy működni fog, amíg igazán nem személyesen teszt, de vannak olyan pozíciók az interneten, hogy a tervezési munkák én is kívánatos megoldás TWebBrowser
Itt a probléma már általánosan ismert, mint például a már akkor lokalizált hiba Cookie más tulajdonságokat megváltoztatjuk gond nélkül. Mint például a User-Agent és Referer tesztelték személyesen.
Vopross hogyan kell változtatni a cookie?
IMHO: Ha jól értem azt TWebBrowser-alkatrész, mint egy rakás Delphi hibák! Fenébe, hogy hogyan lehet, hogy egy alkatrész anélkül, hogy a felhasználó képes továbbítani a cookie-kat? Az egyetlen magyarázat az, hogy a Borland, mint Bill általában szemtelen!
Most, sőt, éppen TWebBrowser-, és nincs módja annak, hogy módosítsa a cookie kulcsszó, amely bekapcsolja csúszda használata harmadik féltől származó összetevők, mint például a IdHTTP amely megbirkózik vele is. Az eredmény egy teher a TWebBroser. Most az a kérdés, hogyan tudok a tartalmát a GET, POST, Fejes kérelmet. Mindent meg kell feldolgozni BeforeNavigate, de hogyan kell olvasni?
Köszi előre is minden tanácsot
Srácok sokat segít az utolsó része a problémának. Hosszas szenvedés és az MSDN olvasni következtetésre jutott, hogy mindegy is szabályozható a:
(WebBrowser1.Document mint IhtmlDocument2) .cookie
Egy feltétellel, a cookie továbbítani kell, mielőtt a kezdési szerkesztést. Nevezetesen, ha letép egy URL, amely meghatározza a cookie akkor, és csak akkor lehet szerkeszteni (vagy helyettesíti a változás).
De ha a cookie szerkesztett és tárolt nekem kérni, hogy problémák merülnek fel. Kísérlet arra, hogy módosítsa az esemény Beforenavigate kudarcba fulladt, mert ebben a szakaszban nem létezik WebBrowser1.Document
Mi lenne WebBrowser1.Document ott először megpróbált megnyitni egy dokumentumot about: blank, és csak ezután módosítsa a cookie de nem működik :-(
Tud valaki tanácsot, hogy
Memória: 0,74 MB
Idő: 0.043 c