AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Cookies mit TIdCookieManager und TIdHTTP
Thema durchsuchen
Ansicht
Themen-Optionen

Cookies mit TIdCookieManager und TIdHTTP

Offene Frage von "vlees91"
Ein Thema von vlees91 · begonnen am 11. Okt 2008 · letzter Beitrag vom 29. Nov 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Cookies mit TIdCookieManager und TIdHTTP

  Alt 26. Okt 2008, 20:05
sieht nicht danach aus, dass das klappt...
Imernoch bekomme ich eine Loginseite als Result.
Achja: ich musste ine Zeile anpassen: lStream := MyHTTP.... wurde zu MyHTTP(...,Params,lStream); da sonst der Fehler kam dass memorystream und string inkompatibel seien
vlees91
  Mit Zitat antworten Zitat
Benutzerbild von Agent159
Agent159

Registriert seit: 7. Sep 2005
Ort: Oranienburg
30 Beiträge
 
#12

Re: Cookies mit TIdCookieManager und TIdHTTP

  Alt 26. Okt 2008, 21:22
aus irgendwelchen Gründen funktionier bei den neueren Version des Indy-Pakets die Cookieübergabe und -Speicherung komplett garnicht!

Ich habs mit der 9er und 10er Version versucht, es klappte nur mit den älteren per IdHTTP empfangene Cookies zu speichern, bzw. wurde das mit AllowCookies schon automatisch gemacht.
Nico
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Cookies mit TIdCookieManager und TIdHTTP

  Alt 27. Okt 2008, 15:37
Wie ich aber schon schrieb ist es merkwuerdig dass die Cookies anderer Seiten zugelassen werden (Ich lasse mir ne MessageBox geben sobald eine Seite ueberhaupt versucht einen Keks zu hinterlassen aber beim Login auf uploaded.to wird diese Funktion garnicht erst aufgerufen...
ich werde mal weitersuchen...
vlees91
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Cookies mit TIdCookieManager und TIdHTTP

  Alt 28. Okt 2008, 22:26
habe jetzt mal die Packets des offiziellen Programms mit denen des Safari Browsers und meinem Programm verglichen:
Fakt: Alle drei bekommen das zu schreibende Cookie mitgeteilt aber mein Programm liest es grade bei diesem Server nicht ein

Code:
HTTP/1.1 302 Found..Date: Tue, 28 Oct 2008 21:21:07 GMT..Server: Apache/2.2.3 (Ubuntu) mod_python/3.2.10 Python/2.5.1..Location: /login?coo=1..Cache-Control: no-cache="set-cookie"..Set-Cookie: lang=en; path=/; domain=.uploaded.to; expires=Fri, 28-Oct-2011 21:21:07 GMT..Set-Cookie: auth=1234567890abcdef1234567890abcdef1234567; path=/; domain=.uploaded.to; expires=Fri, 28-Oct-2011 21:21:07 GMT..Connection: close..Content-Type: text/plain; charset=UTF-8....

The document has moved [url="/login?coo=1"]here[/url]</p>.
die lange hexzahl in der mitte ist das tatsaechliche cookie
nur mein Programm speichert es nicht (im OnCookie event was wiegesagt von allen anderen bisher getesteten Seiten die Cokies speichert.
Also am TIdHTTP wirds imho nicht liegen. werde also jetzt beim TIdCookieManager weitersuchen denke ich mal

(ist es eig genug IdHTTP.AllowCookies := true und IdHTTP.CookieManager := IdCookieManager einzustellen?)
vlees91
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Cookies mit TIdCookieManager und TIdHTTP

  Alt 29. Nov 2008, 11:24
zur info: mit Curl funktionierts einwandfrei: einziges Problem: libcurl fuer Delphi ist total veraltet und von daher scheint mir Indy eben praktischer weils direkt bei Delphi dabei ist
Code:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookieFileName");
curl_setopt($ch, CURLOPT_URL,"http://www.uploaded.to/login");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "email=EMAIL&password=PASSWORD");

ob_start();     // prevent any output
curl_exec ($ch); // execute the curl command
ob_end_clean(); // stop preventing output

curl_close ($ch);
unset($ch);

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookieFileName");
curl_setopt($ch, CURLOPT_URL,"http://www.uploaded.to/home");

$buf2 = curl_exec ($ch);

curl_close ($ch);
unset($ch);

//echo ($buf2); //$buf2 enthaelt eine HTMLseite die mir erzaehlt dass ich eingeloggt bin...

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookieFileName");
curl_setopt($ch, CURLOPT_URL,"http://uploaded.to/api/uploadserver");

$uploadserver = curl_exec ($ch);

curl_close ($ch);
unset($ch);

$uploadserver .='up?output=xml&upload_id='. rand(100000000, 999999999);

$uploadfile = 'testdata.xml';
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookieFileName");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_URL,$uploadserver);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
               array('file1x'=>"@$uploadfile"));

$result = curl_exec ($ch);

curl_close ($ch);
unset($ch);

echo $result;

?>
Jaja, der code ist ziemlich unsauber... aber er funktioniert und laedt die ungefaehr 6.5mb grosse testdatei hoch. leider ohne progressbar... aber nach einer Minute (ungefaher) steht die Datei unter meinem usernamen hochgeladen auf uploaded.to

auch mit der commandline version von curl hat der login geklappt:
Code:
curl -L -b cookies.txt -c cookies.txt -d "email=EMAIL&password=PASSWORD" "http://www.uploaded.to/login"
Auch aus diesem query kam die "login erfolgrech" Mitteilung und wurden die richtigen cookies in die cookies.txt geschrieben

Weiss jetzt jemand was an meinem Code mit Indy falsch ist? Oder ist es Indy's Fehlinterpretation des Responses des Servers?
vlees91
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz