Ahoj,
potřeboval bych poradit s používáním cookies v delphi. Umím se připojit k internetu a stáhnout nějaké soubory buď metodou GET nebo POST pomocí příkazů InternetConnect, HttpOpenRequest a HttpSendRequest. Vše funguje jak má a soubor se bez problémů stáhne. Data v POST se přenesou.
Tak jsem se pokusil nějak připojit cookies. Nejdříve jsem se pokoušel nastavi cookies a to pomocí příkazu HttpAddRequestHeaders. Tady je kód, který jsem sestrojil:
FTCookies:= 'Cookie: neco=1234; c=aab';
HttpAddRequestHeaders(
hConnect,
PChar(FTCookies),
length(FTCookies),
0
);
To bude možná správně, ale byl bych vděčný za kontrolu. Udělal jsem pár testů (ne stoprocentně průkazných), podle kterých se zdá, že to nefunguje. Mám obavy, jestli by neměla být proměnná FTCookies zakončena CRLF skupinou, ale nevím, jak se to dělá.
Další část byl pokus o čtení cookies. Použil jsem funkci HttpQueryInfo, konkrétně tento kód:
HttpQueryInfo(
hRequest,
HTTP_QUERY_RAW_HEADERS_CRLF,
CookiesBuf,
CookiesBufLen,
CookiesIndex
);
HTTP_QUERY_RAW_HEADERS_CRLF byl jediný parametr, který mi vyhodil nějaký použitelný výsledek:
HTTP/1.1 200 OK
Date: Mon 05 OCT 2009 14:56:09 GTM
Server: Apache/2.2.11 (Debian) PHP/5.2.9-4 with Suhosin-Patch mod_ssl/2.2.11 OpenSSL/0.9.8g
X-Powered-By: PHP /5.2.9-4
Cashe control: no-cache
Set-Cookie: platnost=1254765369
Content-Length: 6543
Connection: close
Content-Type: text/html
Zdálo by se, že vše funguje jak má a že stačí z textu vyextrahovat řádek Set-Cookie:, ale problém je v tom, že server má zde předávat ještě další 2 cookie ve formátu:
Set-Cookie: něco=346
Set-Cookie: něco_jineho=56787
Set-Cookie: platnost=1254765369
Jak je vidět, vypsalo se pouze poslední Set-Cookie.
Byl bych vám vděčný za jakoukoliv radu, jak z toho ven. Jen mi nepište, že mám použít nějakou free implementaci, která tohle zvládá sama. Všechny možné implementace jsem zkoušel a žádná mi zcela nevyhovuje a potřebuji jen vědět, jak na ty cookies.
Děkuji.
Fórum › Delphi
Cookies přes HTTP
Tak protože jsem nezjistil jak na to, rozhodl jsem se, že mi bude muset postačit knihovna Synapse. Bohužel zde jsem také narazil na jeden problém. Normálně to všechno nastavim a odešlu a všechno je v pořádku až na to, že když si dám vypsat hlavičku, kterou mi poslal server, tak tam chybí poslední set-cookies. Jedná se o podobný problém jako který jsem měl dříve (viz přispěvek nahoře), ale tentokrát se mi vypíší 2 cookies a ta třetí mi chybí. Přitom vím jistě, že ve stránce, kterou načítám chyba není, protože normální internetový prohlížeč tuto cookies normálně načítá. Byl bych vděčný za jakoukoliv radu.
Děkuji.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 10 hostů
Podobná vlákna
Komunikace přes HTTP protokol — založil Jakolcz
Stazeni seznamu souboru ze serveru pres http — založil radek
Poco Net - http požadavek přes TLS — založil George
Ověření přes PHP a poté přes JS — založil Facedown