Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdHTTP, probleme mit Post... (https://www.delphipraxis.net/10178-idhttp-probleme-mit-post.html)

FriFra 13. Okt 2003 09:48


IdHTTP, probleme mit Post...
 
Das Thema gab es zwar schon mehrfach, jedoch ohne brauchbare Lösung...

Ich möchte Daten via HTTP-Post an eine PHP Seite senden

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  data: TIdMultiPartFormDataStream;
begin
  data := TIdMultiPartFormDataStream.Create;
  try
    { add the used parameters for the script }
    data.AddFormField('Wert1', 'value1');
    data.AddFormField('Wert2', 'value2');
    data.AddFormField('Wert3', 'value3');

    data.Position:=0;
    { Call the Post method of TIdHTTP and read the result into TMemo }
    Memo1.Lines.Text := IdHTTP1.Post('http://www.irgendeinedomain.net/upload.php',
      data);
  finally
    data.Free;
  end;
end;
Die Daten kommen jedoch nicht am Ziel an, d.h. die Variablen sind leer...
upload.php
Code:
<?PHP
echo $HTTP_POST_VARS["Wert1"]."
";
echo $HTTP_POST_VARS["Wert2"]."
";
echo $HTTP_POST_VARS["Wert3"]."
";
?>
Mache ich das gleiche über eine HTML-Seite, klappt alles fehlerfrei:
Code:
<html>
<body>
<form action="upload.php" method="POST">
<input type=text name="Wert1" value="value 1">


<input type=text name="Wert2" value="value 2">


<input type=text name="Wert3" value="value 3">


<input type=submit>
</form>
</html>

FriFra 16. Okt 2003 19:45

Re: IdHTTP, probleme mit Post...
 
Weiss denn wirklich niemand, wie man einen richtigen POST-Request mit Indy hinbekommt??? :roll: :gruebel:

SirThornberry 16. Okt 2003 19:48

Re: IdHTTP, probleme mit Post...
 
wenn du im php-script einfach $Wert1 verwendest zeigst dann einen wert an???

FriFra 16. Okt 2003 19:51

Re: IdHTTP, probleme mit Post...
 
Nein, es wird auch dann nichts angezeigt! Wenn ich die Webseite (Beispiel) verwende, dann klappt es ja auch -> Das Script ist OK, Indy (oder ich) macht was falsch...

SirThornberry 16. Okt 2003 19:54

Re: IdHTTP, probleme mit Post...
 
also auf arbeit hab ich nen project rumliegen wo ich sowas auch mache, dort funktioniert auch, komm jetzt aber nicht ran. Wenn deine Felder nur Strings beinhalten benutze mal die idhttp.post variante wo du die parameter in einer Stinglist übergibst.

beispiel:
parameter.add('wert=
wert=value1');

vielleicht liegst an dem "data.position". Das hab ich bei mir so weit ich weiß nie verwendet und es hat trotzdem geklappt;

FriFra 16. Okt 2003 19:57

Re: IdHTTP, probleme mit Post...
 
Das nützt mir nichts, da ich eigentlich auch noch eine Datei übertragen will. Durch diesen Test habe ich aber festgestellt, dass Indy noch nichtmal in der Lage ist einfache Textfelder zu übertragen...

SirThornberry 16. Okt 2003 20:11

Re: IdHTTP, probleme mit Post...
 
Hypothese: Wenn du das try finaly rausnimmst siehst du das nen fehler kommt. Ich nehm an du testest das ganze local und das ist intranet und somit brauchst du die BasicAuthentication da die indycomponente nicht wie der IEExplorer automatich das windowslogin sendet

FriFra 16. Okt 2003 20:21

Re: IdHTTP, probleme mit Post...
 
BasicAuthentication hin oder her, damit hat es nichts zu tun... :cyclops: Es gibt auch keinen Fehler, das Memo wird ja gefüllt
Code:
, nur sind eben die Variablen leer...

Mal ganz davon abgesehen teste ich es nicht lokal, das Script und auch die Testseite liegen auf einem "echten" Webserver im Netz ;)

SirThornberry 16. Okt 2003 20:31

Re: IdHTTP, probleme mit Post...
 
Delphi-Quellcode:
var
  data: TIdMultiPartFormDataStream;
begin
  data := TIdMultiPartFormDataStream.Create;
  data.AddFormField('Wert1', 'value1');
  data.AddFormField('Wert2', 'value2');
  data.AddFormField('Wert3', 'value3');
  idhttp1.Post('http://127.0.0.1/index.htm', data);
  data.free;
bei mir klappts. Oder hastn noch irgendwie nen sourceschnipsel mehr wo eventuell der Fehler drin ist??

FriFra 16. Okt 2003 20:36

Re: IdHTTP, probleme mit Post...
 
Zitat:

Zitat von SirThornberry
Delphi-Quellcode:
var
  data: TIdMultiPartFormDataStream;
begin
  data := TIdMultiPartFormDataStream.Create;
  data.AddFormField('Wert1', 'value1');
  data.AddFormField('Wert2', 'value2');
  data.AddFormField('Wert3', 'value3');
  idhttp1.Post('http://127.0.0.1/index.htm', data);
  data.free;
bei mir klappts. Oder hastn noch irgendwie nen sourceschnipsel mehr wo eventuell der Fehler drin ist??

Woher willst Du denn wissen ob es klappt?! :evil: Du lässt Dir doch nichtmal das Ergebnis ausgeben!!! Ausserdem wird dir eine *.htm Seite wenig nützen... es sollte schon ein php-Script ein, ansonsten ist es nix mit Parametern auswerten :zwinker:
Mein Request geht ja auch "Fehlerfrei" raus, nur kommen die übergebenen Felder/Feldinhalte nicht an :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.
Seite 1 von 3  1 23      

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