243 lines
6.8 KiB
Plaintext
243 lines
6.8 KiB
Plaintext
unit DeCrmHeLinuxMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
|
|
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts,
|
|
FMX.ExtCtrls, FMX.StdCtrls, FMX.Objects, FMX.Controls.Presentation,
|
|
IdHTTP, IdSSLOpenSSL, IdIOHandler,
|
|
FMX.Memo.Types, FMX.ScrollBox, FMX.Memo, FMX.Edit, System.ImageList,
|
|
FMX.ImgList, System.Net.URLClient, System.Net.HttpClient,
|
|
System.Net.HttpClientComponent;
|
|
|
|
type
|
|
TDlgeCrmHeLinuxMain = class(TForm)
|
|
imgMain: TImage;
|
|
lbMode: TLabel;
|
|
btnGetPolicy: TButton;
|
|
mmPolicy: TMemo;
|
|
edSvrAddr: TEdit;
|
|
imgMainList: TImageList;
|
|
NetHTTPClient: TNetHTTPClient;
|
|
NetHTTPRequest: TNetHTTPRequest;
|
|
tProc: TTimer;
|
|
procedure btnGetPolicyClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
HTTP_: TIdHTTP;
|
|
SSL_: TIdSSLIOHandlerSocketOpenSSL;
|
|
function HttpPost(sDest, sRqType, sParam: String): String;
|
|
public
|
|
{ Public declarations }
|
|
Constructor Create(aOwner: TComponent); override;
|
|
Destructor Destroy; override;
|
|
end;
|
|
|
|
var
|
|
DlgeCrmHeLinuxMain: TDlgeCrmHeLinuxMain;
|
|
|
|
implementation
|
|
|
|
uses
|
|
System.JSON, System.JSON.Readers, System.Net.Mime;
|
|
|
|
{$R *.fmx}
|
|
|
|
Constructor TDlgeCrmHeLinuxMain.Create(aOwner: TComponent);
|
|
|
|
procedure InitHttp;
|
|
begin
|
|
SSL_ := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
|
|
SSL_.SSLOptions.Method := sslvSSLv23;
|
|
SSL_.SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_1, sslvTLSv1];
|
|
|
|
HTTP_ := TIdHTTP.Create(nil);
|
|
HTTP_.IOHandler := SSL_;
|
|
with HTTP_ do
|
|
begin
|
|
Request.Clear;
|
|
Request.UserAgent := 'Mozilla/5.0';
|
|
Request.ContentType := 'application/json; charset=utf-8'; //'application/xml';
|
|
Request.Accept := 'application/json; charset=utf-8';
|
|
Request.Charset := 'utf-8';
|
|
Request.Connection := 'Keep-Alive';
|
|
ConnectTimeout := 3000;
|
|
ReadTimeout := 3000;
|
|
end;
|
|
|
|
NetHTTPClient.UserAgent := 'Mozilla/5.0';
|
|
NetHTTPClient.ContentType := 'application/json; charset=utf-8';
|
|
NetHTTPClient.Accept := 'application/json; charset=utf-8';
|
|
NetHTTPClient.AcceptCharSet := 'utf-8';
|
|
|
|
NetHTTPRequest.CustomHeaders['UserAgent'] := 'Mozilla/5.0';
|
|
NetHTTPRequest.CustomHeaders['ContentType'] := 'application/json; charset=utf-8';
|
|
NetHTTPRequest.CustomHeaders['Accept'] := 'application/json; charset=utf-8';
|
|
NetHTTPRequest.CustomHeaders['Charset'] := 'utf-8';
|
|
end;
|
|
|
|
begin
|
|
Inherited Create(aOwner);
|
|
InitHttp;
|
|
end;
|
|
|
|
Destructor TDlgeCrmHeLinuxMain.Destroy;
|
|
begin
|
|
FreeAndNil(HTTP_);
|
|
FreeAndNil(SSL_);
|
|
Inherited;
|
|
end;
|
|
|
|
function TDlgeCrmHeLinuxMain.HttpPost(sDest, sRqType, sParam: String): String;
|
|
var
|
|
ss: TStringStream;
|
|
begin
|
|
Result := '';
|
|
try
|
|
ss := TStringStream.Create(sParam, TEncoding.UTF8);
|
|
try
|
|
HTTP_.Request.CustomHeaders.Values['requestType'] := sRqType;
|
|
|
|
Result := HTTP_.Post(sDest, ss);
|
|
if (Result = '') and (HTTP_.ResponseCode = 200) then
|
|
Result := 'true';
|
|
finally
|
|
FreeAndNil(ss);
|
|
end;
|
|
except
|
|
{$IFDEF TRACE1}
|
|
on E: Exception do
|
|
ETgException.TraceException(Self, E, Format('Fail .. HttpPost(), RqType=%s', [sRqType]));
|
|
{$ENDIF}
|
|
end;
|
|
end;
|
|
|
|
procedure GetRunningAplications(Applist: TStringlist);
|
|
var
|
|
fWorkSpace:NSWorkSpace;
|
|
list:NSArray;
|
|
i: Integer;
|
|
lItem:NSDictionary;
|
|
key,value: NSString;
|
|
begin
|
|
fWorkSpace := TNsWorkspace.Wrap(TNsWorkSpace.OCClass.sharedWorkspace);
|
|
list := fWorkspace.launchedApplications;
|
|
if (List <> nil) and (List.count > 0) then
|
|
begin
|
|
for i := 0 to list.count-1 do
|
|
begin
|
|
lItem := TNSDictionary.Wrap(List.objectAtIndex(i));
|
|
key := NSSTR(String(PAnsiChar(UTF8Encode('NSApplicationBundleIdentifier'))));
|
|
// You can also use NSApplicationPath or NSApplicationName
|
|
value := TNSString.Wrap(lItem.valueForKey(key));
|
|
Applist.Add(String(value.UTF8String));
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TDlgeCrmHeLinuxMain.btnGetPolicyClick(Sender: TObject);
|
|
var
|
|
sRes: String;
|
|
O: TJSONObject;
|
|
jr: TJsonReader;
|
|
sr: TStringReader;
|
|
SizeF: TSizeF;
|
|
ss1,
|
|
ss2: TStringStream;
|
|
NetHearder: TNetHeaders;
|
|
Res: IHTTPResponse;
|
|
MD: TMultipartFormData;
|
|
begin
|
|
SizeF.cx := 570;
|
|
SizeF.cy := 298;
|
|
imgMain.Bitmap := imgMainList.Bitmap(SizeF, 1);
|
|
|
|
|
|
O := TJSONObject.Create;
|
|
O.AddPair('MODEL_ID', 'kjkim');
|
|
O.AddPair('mwAKey_IP', '192.168.14.71');
|
|
O.AddPair('mwAKey_MAC', '00155D903838');
|
|
O.AddPair('mwAKey_HOSTNAME', 'DESKTOP-GIUQ72N\kjkim');
|
|
O.AddPair('mwAKey_STATUS', 'Disconnected');
|
|
O.AddPair('mwAKey_COLLASTCONN', FormatDateTime('yyyy-mm-dd hh:nn:ss', Now));
|
|
O.AddPair('mwAKey_COLVERSION', '1.5.2.22');
|
|
O.AddPair('mwAKey_AGENTID', 'kjkim');
|
|
O.AddPair('mwAKey_EULACONFIRMED', 'disagree');
|
|
O.AddPair('mwAKey_LOCATION', 'KKU_TEST');
|
|
O.AddPair('mwAKey_PWDSET', 'true');
|
|
O.AddPair('mwAKey_SCRNLOCK', 'true');
|
|
O.AddPair('mwAKey_OSVER', '10');
|
|
O.AddPair('mwAKey_PATCHES', 'null');
|
|
O.AddPair('mwAKey_AVINFORM', 'AV');
|
|
O.AddPair('mwAKey_ASINFORM', 'AS');
|
|
O.AddPair('mwAKey_FIREWALLINFO', 'null');
|
|
O.AddPair('mwAKey_SOFTWAREINFO', 'null');
|
|
O.AddPair('mwAKey_ADDEULACONFIRM', 'false');
|
|
O.AddPair('mwAKey_OSSAFE', 'true');
|
|
O.AddPair('mwAKey_PATCHEXIST', 'true');
|
|
O.AddPair('mwAKey_AVSAFE', 'true');
|
|
O.AddPair('mwAKey_ASSAFE', 'true');
|
|
O.AddPair('mwAKey_FWSAFE', 'true');
|
|
O.AddPair('mwAKey_SAFEBLOCKSETTING', 'true');
|
|
O.AddPair('mwAKey_VPNINFO', 'kjkim');
|
|
O.AddPair('mwAKey_EMPNO', 'kjkim');
|
|
|
|
// ssl : https://192.168.14.133:8443/agentLogRequests.do
|
|
// nomal : http://192.168.14.67:4445/agentLogRequest.do
|
|
edSvrAddr.Text := Trim(edSvrAddr.Text);
|
|
(*
|
|
Result := '';
|
|
try
|
|
ss := TStringStream.Create(sParam, TEncoding.UTF8);
|
|
try
|
|
HTTP_.Request.CustomHeaders.Values['requestType'] := sRqType;
|
|
|
|
Result := HTTP_.Post(sDest, ss);
|
|
if (Result = '') and (HTTP_.ResponseCode = 200) then
|
|
Result := 'true';
|
|
finally
|
|
FreeAndNil(ss);
|
|
end;
|
|
except
|
|
{$IFDEF TRACE1}
|
|
on E: Exception do
|
|
ETgException.TraceException(Self, E, Format('Fail .. HttpPost(), RqType=%s', [sRqType]));
|
|
{$ENDIF}
|
|
end;
|
|
|
|
Request.UserAgent := 'Mozilla/5.0';
|
|
Request.ContentType := 'application/json; charset=utf-8'; //'application/xml';
|
|
Request.Accept := 'application/json; charset=utf-8';
|
|
Request.Charset := 'utf-8';
|
|
*)
|
|
|
|
NetHTTPRequest.CustomHeaders['requestType'] := '123120';
|
|
|
|
// NetHearder
|
|
|
|
ss1 := TStringStream.Create(O.ToJSON, TEncoding.UTF8);
|
|
ss1.Position := 0;
|
|
ss2 := TStringStream.Create('', TEncoding.UTF8);
|
|
Res := NetHTTPRequest.Post(edSvrAddr.Text, ss1, ss2);
|
|
sRes := Res.ContentAsString(TEncoding.UTF8);
|
|
|
|
if ss2.Size = 0 then
|
|
exit;
|
|
|
|
// sRes := HttpPost(edSvrAddr.Text, '123120', O.ToJSON);
|
|
O.Free;
|
|
|
|
try
|
|
// O := TJSONObject.ParseJSONValue(sRes) as TJSONObject;
|
|
O := TJSONObject.ParseJSONValue(ss2.DataString) as TJSONObject;
|
|
except
|
|
exit;
|
|
end;
|
|
|
|
mmPolicy.Text := O.Format(4);
|
|
O.Free;
|
|
end;
|
|
|
|
end.
|