![]() |
Problem: per POST senden
Hallo,
ich habe mir ausm internet (dsdt.info) hier die sachen rausgesucht, die ich benötige: unzwar soll dieses programm sozusagen als proxy (zusammen mit einem script auf einem server) funktionieren. der server ist im moment nur zu testzwecken nicht kommerziell. Allerdings bekomme ich nie etwas zurückgeliefert vom script, an das ich die daten sende. Wenn man aber manuell an das script den befehlt sendet z.b. so: ![]() wo ist der fehler ? ;) wäre für eure hilfe sehr dankbar
Delphi-Quellcode:
procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var sl: TStringList; ms: TMemoryStream; begin WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages; if Assigned(WebBrowser.Document) then begin sl := TStringList.Create; try ms := TMemoryStream.Create; try sl.Text := HTMLCode; sl.SaveToStream(ms); ms.Seek(0, 0); (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)); finally ms.Free; end; finally sl.Free; end; end; end; 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; procedure TForm1.suche_btClick(Sender: TObject); var sList: TStringlist; begin sList:=TStringList.Create; try sList.Add('url=http://www.'+url.text); WB_loadhtml(Webbrowser1, SendPostData(idHttp1,'http://hermei4.100webspace.net/index.php',sList)); finally sList.Free; end; end; |
Re: Problem: per POST senden
Guten Morgen,
der Unterschied zwischen dem manuellen und deinem programmierten Abruf ist einfach der, dass du im manuellen Fall ein HTTP GET ausführst und im Programm ein HTTP POST. Um alle möglichen Fälle korrekt zu behandeln wirst du wohl ein weinig mit phpInfo() debuggen müssen. Grüße vom marabu |
Re: Problem: per POST senden
gibt es denn keine andere komponente, die ein GET zur verfügung stellt ? was müsste ich denn in der phpinfo ändern ?
ich hab ansich von PHP 0 ahnung :roll: |
Re: Problem: per POST senden
Die Indy-Komponente bietet doch auch Get an du musst es nur verwenden und nicht wie derzeit post.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 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