Einzelnen Beitrag anzeigen

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, 10: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