Cookies přes HTTP – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cookies přes HTTP – Delphi – Fórum – Programujte.comCookies přes HTTP – Delphi – Fórum – Programujte.com

 

Tundra
~ Anonymní uživatel
25 příspěvků
5. 10. 2009   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 82.117.140.–
Tundra
~ Anonymní uživatel
25 příspěvků
7. 10. 2009   #2
-
0
-

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.

Nahlásit jako SPAM
IP: 82.117.140.–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý