Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#13

AW: RESTDebugger-Parameter mit Special Characters in URL

  Alt 19. Dez 2018, 16:56
Der wirkliche echte Aufruf muss wie folgt sein
Code:
http://blabla.de/v1/Processes('funktioniertNicht%23')
dann kommt beim Server auch
Code:
v1/Processes('funktioniertNicht#')
an.

Bei
Code:
http://blabla.de/v1/Processes('funktioniertNicht#')
kommt beim Server das
Code:
v1/Processes('funktioniertNicht
an.

Du kannst dir ganz einfach einen simplen HttpServer zusammenbauen TIdHttpServer und dann selber nachsehen, was bei welchem Request so ankommt.
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    IdHTTPServer1: TIdHTTPServer;
    ActiveCheckBox: TCheckBox;
    Memo1: TMemo;
    procedure ActiveCheckBox_Click(Sender: TObject);
    procedure Form_Activate(Sender: TObject);
    procedure IdHTTPServer1_CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
    procedure IdHTTPServer1_CommandOther(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ActiveCheckBox_Click(Sender: TObject);
begin
  IdHTTPServer1.Active := ActiveCheckBox.Checked;
end;

procedure TForm1.Form_Activate(Sender: TObject);
begin
  ActiveCheckBox.Checked := IdHTTPServer1.Active;
end;

procedure TForm1.IdHTTPServer1_CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  Memo1.Lines.Add(string.Format('%s: %s %s', [ARequestInfo.Command, ARequestInfo.Document,ARequestInfo.QueryParams]));
end;

procedure TForm1.IdHTTPServer1_CommandOther(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  Memo1.Lines.Add(string.Format('%s: %s %s', [ARequestInfo.Command, ARequestInfo.Document,ARequestInfo.QueryParams]));
end;
ACHTUNG
ARequestInfo.Document enthält den bereits dekodierten Wert!
ARequestInfo.QueryParams ist noch nicht dekodiert!
  Mit Zitat antworten Zitat