AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem: per POST senden
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: per POST senden

Ein Thema von bonanza · begonnen am 2. Dez 2006 · letzter Beitrag vom 3. Dez 2006
Antwort Antwort
bonanza

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

Problem: per POST senden

  Alt 2. Dez 2006, 21: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
marabu

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

Re: Problem: per POST senden

  Alt 3. Dez 2006, 09:58
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
  Mit Zitat antworten Zitat
bonanza

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

Re: Problem: per POST senden

  Alt 3. Dez 2006, 10:30
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem: per POST senden

  Alt 3. Dez 2006, 10:32
Die Indy-Komponente bietet doch auch Get an du musst es nur verwenden und nicht wie derzeit post.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:27 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