AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IdHTTP Server/Client Problem
Thema durchsuchen
Ansicht
Themen-Optionen

IdHTTP Server/Client Problem

Ein Thema von sephraina · begonnen am 25. Jun 2015 · letzter Beitrag vom 29. Dez 2022
Antwort Antwort
sephraina

Registriert seit: 17. Feb 2015
36 Beiträge
 
Delphi XE7 Professional
 
#1

IdHTTP Server/Client Problem

  Alt 25. Jun 2015, 12:17
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:
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;
Und hier mein Servercode:
Delphi-Quellcode:
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;
Da der Server kein 'CommandPost' hat nahm ich das 'CommandOther'
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
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#2

AW: IdHTTP Server/Client Problem

  Alt 25. Jun 2015, 12:34
Da der Server kein 'CommandPost' hat nahm ich das 'CommandOther'
'OnCommandGet' wird ausgelöst bei GET, POST und HEADER.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
sephraina

Registriert seit: 17. Feb 2015
36 Beiträge
 
Delphi XE7 Professional
 
#3

AW: IdHTTP Server/Client Problem

  Alt 25. Jun 2015, 13:01
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?
if Acontext = 'Getthen showmessage('get') else if Acontext = 'postthen showmessage('post'); aber das sind ja andere Typen...
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#4

AW: IdHTTP Server/Client Problem

  Alt 25. Jun 2015, 13:25
Danke, das erklärt einiges.
Aber wie mache ich jetzt den Unterschied zwischen Get und Post?
ARequestInfo.Command gibt Dir diese Möglichkeit.

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.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
sephraina

Registriert seit: 17. Feb 2015
36 Beiträge
 
Delphi XE7 Professional
 
#5

AW: IdHTTP Server/Client Problem

  Alt 25. Jun 2015, 14:30
Danke, Problem gelöst

Habe jetzt mein
Delphi-Quellcode:
procedure TFServer.IdHTTPServer1CommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
mit der Abfrage ergänzt:
Delphi-Quellcode:
if ARequestInfo.Command ='GET'  then
    begin //irgendwas
    end;
else if ARequestInfo.Command ='POST'  then
    begin //irgendwas
    end;
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
107 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: IdHTTP Server/Client Problem

  Alt 28. Dez 2022, 17:47
Hallo wie genau hast du die dann den Stream geholt ? Ich bin auch gerade an sowas drann...
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.135 Beiträge
 
Delphi 12 Athens
 
#7

AW: IdHTTP Server/Client Problem

  Alt 28. Dez 2022, 21:16
Schau mal in das rein, was dort Request und Response im Namen hat. (Post vorher)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
107 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: IdHTTP Server/Client Problem

  Alt 29. Dez 2022, 09:03
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.
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  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 14:12 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