Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IDHttp - Post-Daten (https://www.delphipraxis.net/77909-idhttp-post-daten.html)

Tommy82 26. Sep 2006 18:01


IDHttp - Post-Daten
 
Hallo, mein Quelltext :
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    Function SendPostData(Ahttp:TIdHttp; Const AtoURL: String; const aParams: TStrings) : String;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Function TForm1.SendPostData(Ahttp:TIdHttp; Const AtoURL: String; const aParams: TStrings): String;
var lStream:TMemoryStream;
 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';

  for i := 0 to aParams.Count-1 Do
   lParams.WriteString(aParams[I]+'&');
  TRY
   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.Button1Click(Sender: TObject);
var sList: TStringList;
begin
 sList := TStringList.Create;
 try
  sList.Add('sid=325806239433722059');
  sList.Add('onr=4880911920');
  sList.Add('logd=32580');
  sList.Add('aufdat=26.06.06');
  sList.Add('frankatur=03');
  sList.Add('warenwert=1000,00');
  sList.Add('wwcurr=EUR');
  sList.Add('termart=F');
  sList.Add('terdat=26.10.06');
  sList.Add('nachnahme=2000');
  sList.Add('nncurr=EUR');
  sList.Add('txid=036190');
  sList.Add('ename1=Thomas Göttsching');
  sList.Add('ename2=');
  sList.Add('estr=Teststrasse1');
  sList.Add('eland=DE');
  sList.Add('eplz=32369');
  sList.Add('eort=Rahden');
  sList.Add('vtext=AVIS');
  sList.Add('etext=Tel-Nr');
  sList.Add('cca1=1');
  sList.Add('ccv1=FP');
  sList.Add('cci1=Panasonic TV');
  sList.Add('gew=60');
  sList.Add('gesdcbm=0');
  sList.Add('geslm=0,00');
  sList.Add('delcode=00');
  sList.Add('inarg=');
  {Memo1.Text := SendPostData(idHttp1,'http://212.184.95.90/cgi-bin/or?ostore.php',sList);}
  Memo1.Text := idhttp1.Post('http://212.184.95.90/cgi-bin/or?ostore',slist);
 finally
  slist.Free;
 END;
end;

end.
Hintergrund:
Es ist ein Programm, welches Daten aus unserer Warenwirtschaft direkt an unsere Spedition übergeben soll.

Wenn ich die Daten schicke, bekomme ich die meldung, dass die Daten nicht verarbeitet wurden. er findet aber die Seite!
was mache ic falsch?

SnuffMaster23 26. Sep 2006 18:09

Re: IDHttp - Post-Daten
 
Was macht denn TForm1.SendPostData?
Da blick ich nicht ganz durch.

In TForm1.Button1Click wird der Spaß doch schon weggeschickt.

Ich würde sagen der Fehler liegt am Server, dass er die Daten nicht annimmt ;)

Tommy82 26. Sep 2006 18:13

Re: IDHttp - Post-Daten
 
Hallo,

die SendPostData war ein weiterer Versuch von mir, aber das hatte dieselbe wirkung.
Wie man sieht, ist diese Funktion aber nicht benutzt.

Wenn ic die Daten alle per Hand eigebe, und anschließend den passenden Button drücke, dann frisst der server alles. Warum also nicht auch aus einem Programm? wie kann der Server den Unterschied merken?

SnuffMaster23 26. Sep 2006 18:17

Re: IDHttp - Post-Daten
 
Nen Unterschied kann der Server höchstens am Header merken, die Daten haben ja immer die gleiche Qualität^^

Wo gibst du das denn von Hand ein?

Tommy82 26. Sep 2006 18:25

Re: IDHttp - Post-Daten
 
Webseiten-Titel

Da die WebId irgendwann veraltet, wird diese automatisch ausgelesen. Sollte aber zum Testen deinerseits funktionieren.

SirThornberry 26. Sep 2006 18:47

Re: IDHttp - Post-Daten
 
hast du zugriff auf das Serverscript? dann könntest du dort Debugausgaben einbauen bzw. suchen warum die Daten nicht angenommen werden. Eventuell stimmt die Refferer nicht (oder wie man die Herkunfssteite nennt).

Tommy82 26. Sep 2006 18:54

Re: IDHttp - Post-Daten
 
nein, habe ich leider nicht.

Tommy82 26. Sep 2006 18:56

Re: IDHttp - Post-Daten
 
ok, gibt es eine andere möglichkeit wie z.B. den Internet-Explorer öffnen, und dann ausfüllen? Dann sollte ja soweit alles richtig sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 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