![]() |
URL aufrufen und POST ausführen
Hi,
ich habe eine URL, die ich im Browser FF oder IE aufrufen will, und dnan das auf der Seite enthaltende Formular absenden! Bei GET ist das ja kein Problem gleich die URL mit den entsprechnenden Variablen aufrufen aber bei POST geht das ja nicht also was nun?! |
Re: URL aufrufen und POST ausführen
Man könnte das Formular lokal Nachbilden und feste werte an die Zielseite senden
|
Re: URL aufrufen und POST ausführen
hmmm sonst gibt es keine Möglichkeiten?
Das scheint mir als Lösung nicht geeignet |
Re: URL aufrufen und POST ausführen
bist du dir mit der Sparte sicher? Willst du es wirklich mit Delphimitteln erreichen oder willst du es mit dem Browser machen?
Was genau ist das Ziel? |
Re: URL aufrufen und POST ausführen
Aus meiner Anwendung heruas eine URL aufrufen, deren Formular dann gleich schon ausgeführt wurde...
Die params sind mir bekannt... mittels GET ja auch kein probleme |
Re: URL aufrufen und POST ausführen
du könntest es mit den indy's machen. die mit der komponenten idhttp einfach die entsprechenden get und post viriablen festleen und senden.
|
Re: URL aufrufen und POST ausführen
Aus meiner Anwendung heruas eine URL aufrufen, deren Formular dann gleich schon ausgeführt wurde...
Die params sind mir bekannt... mittels GET ja auch kein probleme Aber ich habe udn will keinen Browser in meiner Application |
Re: URL aufrufen und POST ausführen
Die Indy's sind kein Browser. Sie enthalten eine Komponente, die dir Hilft, mit dem Internet zu komunizieren, ohne über andere Programme gehen zu müssen!
|
Re: URL aufrufen und POST ausführen
Mittels der idHTTP Komponente kannst du URLS mit Get und Post Daten aufrufen und damit auch gleich Formulare abschicken. Zurückgegeben wird der Quelltext der dann entstandenen Seite. Die Postdaten kannst du genauso in einem String zusammenfassen und mit idHTTP.Post an die URL schicken.
Quelle: ![]()
Delphi-Quellcode:
Mfg Shadow
function SendPostData(Ahttp: TIdHTTP; const AtoURL: String; const aParams: TStrings): String;
//Ahttp: Die HTTP Komponente von Indy 8.0 bzw. 9.0 //AtoURL: An diese URL werden die Informationen gesendet //Result: HTML-Ergebnis (Antwort des Scripts) Var lStream: TMemoryStream; //HTML-Result des PHP-Scripts lParams: TStringStream; I: Integer; begin Result:=''; if not Assigned(aHttp) then exit; lStream := TMemoryStream.create; lParams := TStringStream.create(''); try AHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; //Dieser Stream wird letztendlich gesendet //Stream mit Werten füllen for I:=0 to aParams.Count-1 do lParams.WriteString(aParams[I] + '&'); try //Stream an das PHP-Script senden AHTTP.Post(AtoURL, lParams, lStream); except on E: Exception do showmessage('Fehler bei der Übertragung: ' + E.Message); end; SetLength(Result,lStream.Size); lStream.Position:=0; lStream.ReadBuffer(Result[1],lStream.Size); finally lParams.Free; lStream.Free; end; end; |
Re: URL aufrufen und POST ausführen
Die Anfrage hat sich erledigt,
ich habe es jetzt doch mit der oben beschriebenen Indy-Komponente gemacht. Der Quelltext hat auf Anhieb aber nicht geklappt, da er in der übergebenen URL hinten immer noch ein "leeres" '&' anfügt. Das wird von dem Webserver meiner Webcam (RoboCam) aber nicht akzeptiert. Ich habe den Code also abgeändert, so dass er kein abschließendes '&' mehr übergibt (vielleicht nicht elegant, aber funktioniert ;-)
Delphi-Quellcode:
Gruß, Jörg Hemmerling
...
//Dieser Stream wird letztendlich gesendet //Stream mit Werten füllen for I:=0 to aParams.Count-1 do begin lParams.WriteString(aParams[I] + '&'); end; Text := copy(lParams.Datastring,0, length(lParams.Datastring)-1); lParams.WriteString(Text); try //Stream an das PHP-Script senden AHTTP.Post(AtoURL, lParams, lStream); except on E: Exception do showmessage('Fehler bei der Übertragung: ' + E.Message); end; SetLength(Result,lStream.Size); lStream.Position:=0; lStream.ReadBuffer(Result[1],lStream.Size); ... Erste Anfrage (überholt): Hallo, ich suche eine ebensolche Lösung. (Nachdem ich nun das Bild meiner Webcam laden kann, will ich diese auch noch steuern können) Kann man den Post-Befehl nicht auch "einfach" als Text senden - nichts anderes sind doch die Daten, welche über http gesandt werden - oder? Das müsste dann doch auch mit Delphi-Bordmitteln gehen? Hat das schon mal jemand gemacht? Ich werds mal versuchen - welche Daten (Header, Daten, usw) sollte ich ja mit einem sniffer rauskriegen können. Nur - an welche Schnittstelle sende ich die dann? (Ich vermute mal über netsocks an die IP-Adresse:Port - richtig?) Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr. |
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