Delphi-PRAXiS
Seite 1 von 3  1 23      

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

newuser01 31. Okt 2006 14:57


Probleme mit IdHTTP Post
 
Hallo

Ich bekomm das senden von Daten über "IdHTTP" einfach nicht hin :( Über TWebbrowser geht es ohne Probleme (siehe code)

Delphi-Quellcode:
Webbrowser1.Navigate(sURL);
WebBrowser1.OleObject.Document.Forms.item('frm').Elements.item('text').value := reEintrag.Text;
Element := WebBrowser1.OleObject.Document.forms.item(0).elements;

//Button "senden" suchen und anschließend clicken (text abschicken)
for i := 0 to (Element.Length - 1) do
begin

  if (Element.Item(i).Value = 'senden') then
  begin
   Element.Item(i).Click;
  end;

end;  //for

versuch ich es über "IdHTTP" funktioniert es nicht :(

Delphi-Quellcode:
var
sURL:String;
slEintrag:TStringList;
begin

slEintrag := TStringList.Create;

with slEintrag do
begin
  //"text" ist das Eingabeformular auf der Webseite wie oben bei TWebbrowser
  Add('text='+ reEintrag.Text);
end;

try
  btnSend.Font.Color := clRed;
  btnSend.Caption := 'wird gesendet...';
  btnSend.Update;

  IdHTTP1.Post(sURL,slEintrag);

  btnSend.Font.Color := clBlack;
  btnSend.Caption := 'Senden';
  btnSend.Update;

except
  MessageDlg('Senden fehlgeschlagen', mtError, [mbOK], 0);
  btnSend.Font.Color := clBlack;
  btnSend.Caption := 'Senden';
  btnSend.Update;
end; //try
slEintrag.Free;

newuser01 4. Nov 2006 21:46

Re: Probleme mit IdHTTP Post
 
hat keiner eine Idee oder ein Tipp ? :(

marabu 5. Nov 2006 08:29

Re: Probleme mit IdHTTP Post
 
Guten Morgen Holger,

du musst die Komponente TIdMultiPartFormDataStream einsetzen. Suche in der DP mal nach Hier im Forum suchenAddFile - da solltest du einige Hinweise erhalten.

Grüße vom marabu

DocE 5. Nov 2006 09:33

Re: Probleme mit IdHTTP Post
 
Hallo Holger,

Zitat:

Zitat von marabu
du musst die Komponente TIdMultiPartFormDataStream einsetzen. Suche in der DP mal nach AddFile - da solltest du einige Hinweise erhalten.

So wie das aussieht, möchte Holger gar keine Datei versenden, sondern einfache Formular-Daten.

Im Prinzip müsste das so klappen, wie Du das machst. Was für ein Fehler kommt denn? Ist "sURL" überhaupt gesetzt?


Grüsse
...Doc

marabu 5. Nov 2006 10:01

Re: Probleme mit IdHTTP Post
 
Irgendwie hatte sich bei mir der Eindruck verfestigt, dass Holger am Versand von Dateien (Daten) scheiter. Bei simplen Formularfeldern sollte die Methode AddFormField() helfen.

Freundliche Grüße

DocE 5. Nov 2006 10:05

Re: Probleme mit IdHTTP Post
 
Zitat:

Zitat von marabu
Irgendwie hatte sich bei mir der Eindruck verfestigt, dass Holger am Versand von Dateien (Daten) scheiter. Bei simplen Formularfeldern sollte die Methode AddFormField() helfen.

Stimmt, sieht auch auf den ersten Blick so aus. Das ganze müsste aber auch ohne "AddFormField()" o.ä. funktionieren, eigentlich auch so wie es programmiert ist. Deshalb würde ich doch gerne wissen, welcher Fehler auftritt. Der Fehler liegt vermutlich eher woanders (z.B. sURL nicht gesetzt, aufgerufene(s) Seite/Script unterstützt nur GET, nicht POST, es fehlen wichtige Parameter o.ä.).

DocE 5. Nov 2006 10:11

Re: Probleme mit IdHTTP Post
 
Noch etwas,

vielleicht liegt es auch nur daran, dass Du das Ergebnis nicht verarbeitest:

Delphi-Quellcode:
var HTMLResult: string;
  (...)
  // Ergebnis (empfangene Seite) geht verloren, sofern nicht irgendwie anders "abgefangen":
  //IdHTTP1.Post(sURL,slEintrag);
  // also z.B.
  HTMLResult := IdHTTP1.Post(sURL,slEintrag);
  // Empfangene Seite steht jetzt in HTMLResult

newuser01 5. Nov 2006 11:19

Re: Probleme mit IdHTTP Post
 
Hallo

Also erstmal danke für eure Hilfe. Eine Fehlermeldung kommt nicht und sURL ist auch gesetzt. Mit WebBrowser1 geht es ja dort wird das Formular (WebBrowser1.OleObject.Document.Forms.item('frm'). Elements.item('text').value := reEintrag.Text;) mit Formulardaten gefüllt und anschließend der "Senden" Button gesucht und betätigt. Liegt es vielleicht daran das genau dieser Button nicht betätigt wird oder hat dies bei IdHTTP keine Bedeutung?

newuser01 5. Nov 2006 11:42

Re: Probleme mit IdHTTP Post
 
Delphi-Quellcode:
procedure TForm1.btnSendClick(Sender: TObject);
var
sURL:String;
data: TIdMultiPartFormDataStream;
begin

data := TIdMultiPartFormDataStream.Create;
sURL := eGB.Text;
data.AddFormField('text', reEntry.Text);
Memo1.Text := IdHTTP1.Post(sURL, data);

end;
So geht es auch nicht kommt auch keine Fehlermeldung

Hat es vielleicht mit (('frm')) was zu tun? weil bei Webbrowser dieses (Document) ja auch erst aufgerufen wird und dann ja erst das (Elements.item('text')). Aber eigentlich ist die Seite mit dem entsprechendem Formular was ausgefüllt werden soll ja bei (sURL) schon gesetzt

marabu 5. Nov 2006 15:13

Re: Probleme mit IdHTTP Post
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Holger,

ich habe eine kleine Demo erstellt, bei der du die Daten interaktiv per WebBrowser oder per Indy HTTP Client an einen internen Server (Port 8080) schicken kannst. Ich übergebe das Textfeld ohne IdMultiPartFormDataStream. Vielleicht findest du beim Studieren der Demo deinen Fehler.

Freundliche Grüße


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz