AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Probleme mit IdHTTP Post
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit IdHTTP Post

Ein Thema von newuser01 · begonnen am 31. Okt 2006 · letzter Beitrag vom 9. Nov 2006
Antwort Antwort
Seite 1 von 3  1 23      
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#1

Probleme mit IdHTTP Post

  Alt 31. Okt 2006, 15:57
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;
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#2

Re: Probleme mit IdHTTP Post

  Alt 4. Nov 2006, 22:46
hat keiner eine Idee oder ein Tipp ?
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Probleme mit IdHTTP Post

  Alt 5. Nov 2006, 09:29
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
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#4

Re: Probleme mit IdHTTP Post

  Alt 5. Nov 2006, 10:33
Hallo Holger,

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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Probleme mit IdHTTP Post

  Alt 5. Nov 2006, 11:01
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
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#6

Re: Probleme mit IdHTTP Post

  Alt 5. Nov 2006, 11:05
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.ä.).
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#7

Re: Probleme mit IdHTTP Post

  Alt 5. Nov 2006, 11:11
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
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#8

Re: Probleme mit IdHTTP Post

  Alt 5. Nov 2006, 12:19
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?
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#9

Re: Probleme mit IdHTTP Post

  Alt 5. Nov 2006, 12:42
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
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Probleme mit IdHTTP Post

  Alt 5. Nov 2006, 16:13
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
Angehängte Dateien
Dateityp: zip demo_138.zip (3,1 KB, 84x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 00:24 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