|
@@ -16,7 +16,7 @@ uses
|
|
|
SynEdit, SynHighlighterJSON, SynEditHighlighter, SynHighlighterIni,
|
|
|
SynHighlighterXML, SynHighlighterHtml, SynEditRegexSearch, SynEditMiscClasses,
|
|
|
SynEditSearch, _SearchTextHightlighterSynEditPlugin, SynEditTypes, cxSplitter,
|
|
|
- SynEditCodeFolding, dxCore;
|
|
|
+ SynEditCodeFolding, dxCore, Data.DB, dxmdaset;
|
|
|
|
|
|
type
|
|
|
TMethodType = (mtGET, mtPOST, mtPATCH, mtPUT, mtDELETE);
|
|
@@ -121,6 +121,10 @@ type
|
|
|
dxBarButton8: TdxBarButton;
|
|
|
dxBarSubItem8: TdxBarSubItem;
|
|
|
tbbtnVariables: TdxBarButton;
|
|
|
+ memDataVariables: TdxMemData;
|
|
|
+ memDataVariablesfldName: TStringField;
|
|
|
+ memDataVariablesfldValue: TStringField;
|
|
|
+ dsVariables: TDataSource;
|
|
|
procedure FormShow(Sender: TObject);
|
|
|
procedure FormCreate(Sender: TObject);
|
|
|
procedure FormDestroy(Sender: TObject);
|
|
@@ -215,6 +219,7 @@ type
|
|
|
function GenerateGuid: string;
|
|
|
function Encode(const AText: string): string;
|
|
|
function Decode(const AText: string): string;
|
|
|
+ function ReplaceGlobalVar(const AText: string): string;
|
|
|
|
|
|
public
|
|
|
MainConfig: TJSONConfig;
|
|
@@ -269,6 +274,8 @@ end;
|
|
|
procedure TfrmMain.tbbtnVariablesClick(Sender: TObject);
|
|
|
begin
|
|
|
frmVariables.ShowModal;
|
|
|
+ SaveProject;
|
|
|
+ UpdateFullURL;
|
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.UpdateEditor(const AText: string);
|
|
@@ -282,7 +289,7 @@ var
|
|
|
dmy: string;
|
|
|
strlist: TStringList;
|
|
|
begin
|
|
|
- edtFullURL.Text := edtBaseURL.Text;
|
|
|
+ edtFullURL.Text := ReplaceGlobalVar(edtBaseURL.Text);
|
|
|
if EditorURLParams.Lines.Count > 0 then
|
|
|
begin
|
|
|
dmy := '?';
|
|
@@ -291,7 +298,7 @@ begin
|
|
|
if dmy <> '?' then dmy := dmy + '&';
|
|
|
strlist := TStringList.Create;
|
|
|
try
|
|
|
- strlist.Text := StringReplace(EditorURLParams.Lines[i], '=', #13#10, [rfReplaceAll]);
|
|
|
+ strlist.Text := StringReplace(ReplaceGlobalVar(EditorURLParams.Lines[i]), '=', #13#10, [rfReplaceAll]);
|
|
|
if strlist.Count = 2 then
|
|
|
begin
|
|
|
dmy := dmy + TNetEncoding.URL.Encode(strlist[0]) + '=' + TNetEncoding.URL.Encode(strlist[1]);
|
|
@@ -450,6 +457,11 @@ begin
|
|
|
begin
|
|
|
bNewVersion := False;
|
|
|
HTTP := TIdHTTP.Create(nil);
|
|
|
+ HTTP.IOHandler := SSLIOHandlerSocketOpenSSL;
|
|
|
+ HTTP.HTTPOptions := [hoKeepOrigProtocol];
|
|
|
+ HTTP.HandleRedirects := True;
|
|
|
+ HTTP.AllowCookies := True;
|
|
|
+ HTTP.Request.UserAgent := 'Simnet REST Debugger/' + GetAppVersion;
|
|
|
strlist := TStringList.Create;
|
|
|
try
|
|
|
try
|
|
@@ -706,7 +718,7 @@ var
|
|
|
dmy: string;
|
|
|
strstream: TStringStream;
|
|
|
begin
|
|
|
- strstream := TStringStream.Create(EditorPostData.Lines.Text, TEncoding.UTF8);
|
|
|
+ strstream := TStringStream.Create(ReplaceGlobalVar(EditorPostData.Lines.Text), TEncoding.UTF8);
|
|
|
try
|
|
|
FHTTP.Request.ContentType := comboPostContentType.Text;
|
|
|
FHTTP.Request.CharSet := 'utf-8';
|
|
@@ -1263,6 +1275,19 @@ begin
|
|
|
|
|
|
PageControlParams.ActivePage := tabURLParams;
|
|
|
PageControlResponse.ActivePage := tabContent;
|
|
|
+
|
|
|
+
|
|
|
+ strlist := TStringList.Create;
|
|
|
+ try
|
|
|
+ strlist.Text := FProjectConfig.ReadString('Main', 'GlobalVar');
|
|
|
+ memDataVariables.Active := False;
|
|
|
+ memDataVariables.LoadFromStrings(strlist);
|
|
|
+ memDataVariables.Active := True;
|
|
|
+ finally
|
|
|
+ strlist.Free;
|
|
|
+ end;
|
|
|
+
|
|
|
+ UpdateFullURL;
|
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.pmnuPasteJsonContentClick(Sender: TObject);
|
|
@@ -1390,9 +1415,22 @@ begin
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
+function TfrmMain.ReplaceGlobalVar(const AText: string): string;
|
|
|
+begin
|
|
|
+ Result := AText;
|
|
|
+ memDataVariables.First;
|
|
|
+ while not memDataVariables.Eof do
|
|
|
+ begin
|
|
|
+ Result := StringReplace(Result, memDataVariablesfldName.Value, memDataVariablesfldValue.Value, [rfReplaceAll]);
|
|
|
+ memDataVariables.Next;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
procedure TfrmMain.Run;
|
|
|
var
|
|
|
tick: Cardinal;
|
|
|
+ strlist: TStringList;
|
|
|
+ i: Integer;
|
|
|
begin
|
|
|
FHTTP := TIdHTTP.Create(nil);
|
|
|
FHTTP.IOHandler := SSLIOHandlerSocketOpenSSL;
|
|
@@ -1408,7 +1446,20 @@ begin
|
|
|
tick := GetTickCount;
|
|
|
try
|
|
|
FHTTP.Request.CustomHeaders.Clear;
|
|
|
- FHTTP.Request.CustomHeaders.AddStrings(EditorExtraHeaders.Lines);
|
|
|
+
|
|
|
+ strlist := TStringList.Create;
|
|
|
+ try
|
|
|
+ strlist.Text := EditorExtraHeaders.Lines.Text;
|
|
|
+ for i := 0 to strlist.Count - 1 do
|
|
|
+ begin
|
|
|
+ strlist[i] := ReplaceGlobalVar(strlist[i]);
|
|
|
+ end;
|
|
|
+
|
|
|
+ FHTTP.Request.CustomHeaders.AddStrings(strlist);
|
|
|
+ finally
|
|
|
+ strlist.Free;
|
|
|
+ end;
|
|
|
+
|
|
|
|
|
|
if chkUseBasicAuth.Checked then
|
|
|
begin
|
|
@@ -1523,9 +1574,22 @@ begin
|
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.SaveProject;
|
|
|
+var
|
|
|
+ strlist: TStringList;
|
|
|
begin
|
|
|
SavePreset;
|
|
|
+
|
|
|
FProjectConfig.WriteInteger('Presets', 'ConfigVersion', iCurrentConfigVersion);
|
|
|
+
|
|
|
+ strlist := TStringList.Create;
|
|
|
+ try
|
|
|
+ memDataVariables.SaveToStrings(strlist);
|
|
|
+ FProjectConfig.WriteString('Main', 'GlobalVar', strlist.Text);
|
|
|
+ finally
|
|
|
+ strlist.Free;
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
FProjectConfig.Save;
|
|
|
end;
|
|
|
|