![]() |
IdHTTP Server/Client Problem
Hallo,
Ich versuche gerade von meinem Client aus einen Post auf meinen Server zu machen, aber irgendwo stecke ich fest. Der Server hat zwar eine Verbindung zum Client (Get-Request funktioniert) aber meint Post will er nicht anzeigen. Hier der Client-Code
Delphi-Quellcode:
Und hier mein Servercode:
procedure TForm2.Button2Click(Sender: TObject);
var s: TMemorystream; str: TStringstream; a: string; p: integer; begin s := Tmemorystream.Create; str := TStringstream.Create (edit2.Text); showmessage(str.DataString); // wird angezeigt s.LoadFromStream(str); idhttp1.Post('http://127.0.0.1/' , s); end;
Delphi-Quellcode:
Da der Server kein 'CommandPost' hat nahm ich das 'CommandOther'
procedure TFServer.IdHTTPServer1CommandOther(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); var s: TMemorystream; str : TStringstream; begin Showmessage('POST: connected!'); //wird auch nicht angezeigt s:= TMemorystream.Create; s.Position := 0; str.LoadFromStream(s); showmessage(str.DataString); end; Hmm, ich könnte mir vorstellen dass ich den Inhalt des Streams noch irgendwie holen muss (wie?) aber er müsst nur schon mal mein showmessage() anzeigen... Hoffe jemand findet den Fehler. Danke im Voraus! :) Gruss Seph |
AW: IdHTTP Server/Client Problem
Zitat:
|
AW: IdHTTP Server/Client Problem
Danke, das erklärt einiges.
Aber wie mache ich jetzt den Unterschied zwischen Get und Post? -Ich schicke ja den Stream mit http.post()? Ist das im 'Acontext: tidcontext' ?? irgendwie so?
Delphi-Quellcode:
aber das sind ja andere Typen...
if Acontext = 'Get' then showmessage('get') else if Acontext = 'post' then showmessage('post');
|
AW: IdHTTP Server/Client Problem
Zitat:
In der Event-Funktion hast Du als Parameter die Variable "ARequestInfo: TIdHTTPRequestInfo". TIdHTTPRequestInfo hat wiederum die Property "Command" welche Dir einen String liefert. Dieser String lautet dann "GET", "POST", oder "HEAD", je nachdem was Du ausgeführt hast. |
AW: IdHTTP Server/Client Problem
Danke, Problem gelöst :-D
Habe jetzt mein
Delphi-Quellcode:
mit der Abfrage ergänzt:
procedure TFServer.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
Delphi-Quellcode:
if ARequestInfo.Command ='GET' then
begin //irgendwas end; else if ARequestInfo.Command ='POST' then begin //irgendwas end; |
AW: IdHTTP Server/Client Problem
Hallo wie genau hast du die dann den Stream geholt ? Ich bin auch gerade an sowas drann...
|
AW: IdHTTP Server/Client Problem
Schau mal in das rein, was dort Request und Response im Namen hat. (Post vorher)
|
AW: IdHTTP Server/Client Problem
Ich habe vorher mit einer TCP Komponente gearbeitet das ging bis lang aber jetzt habe ich mich überzeugen lassen umzudenken :-) Da war es einfach da gab es ein send ;-) jetzt gibt es Tausend Möglichkeiten.
wenn das läuft werde ich auf jeden Fall hier ein Beispiel reinsetzen ... Das der nächste nicht wieder alles suchen muss ... Ich dachte die idHTTp gibt die Standardantworten selbst Ich muss ja wohl auf jedes Request reagieren, mit der richtigen Response. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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