Thema: Delphi Problem: per POST senden

Einzelnen Beitrag anzeigen

bonanza

Registriert seit: 13. Sep 2005
134 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Problem: per POST senden

  Alt 2. Dez 2006, 20:28
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:
TEST dann funktioniert das.

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