delphimvcframework/samples/jsonwebtoken/vclclient/MainClientFormU.pas

89 lines
1.9 KiB
ObjectPascal
Raw Normal View History

2016-05-23 17:26:00 +02:00
unit MainClientFormU;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
2016-05-23 17:26:00 +02:00
type
TForm5 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Panel1: TPanel;
2016-05-23 17:26:00 +02:00
btnGet: TButton;
btnLOGIN: TButton;
Splitter1: TSplitter;
2016-05-23 17:26:00 +02:00
procedure btnGetClick(Sender: TObject);
procedure btnLOGINClick(Sender: TObject);
private
FJWT: String;
procedure SetJWT(const Value: String);
property JWT: String read FJWT write SetJWT;
2016-05-23 17:26:00 +02:00
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
uses
MVCFramework.RESTClient;
procedure TForm5.btnGetClick(Sender: TObject);
var
lClient: TRESTClient;
lRest: IRESTResponse;
lQueryStringParams: TStringList;
2016-05-23 17:26:00 +02:00
begin
lClient := TRESTClient.Create('localhost', 8080);
try
lClient.ReadTimeOut(0);
if not FJWT.IsEmpty then
lClient.RequestHeaders.Values['Authentication'] := 'bearer ' + FJWT;
lQueryStringParams := TStringList.Create;
try
lQueryStringParams.Values['firstname'] := 'Daniele';
lQueryStringParams.Values['lastname'] := 'Teti';
lRest := lClient.doGET('/admin/role1', [], lQueryStringParams);
finally
lQueryStringParams.Free;
end;
Memo2.Lines.Text := lRest.BodyAsString;
2016-05-23 17:26:00 +02:00
finally
lClient.Free;
end;
end;
procedure TForm5.btnLOGINClick(Sender: TObject);
var
lClient: TRESTClient;
lRest: IRESTResponse;
begin
lClient := TRESTClient.Create('localhost', 8080);
try
lClient.ReadTimeOut(0);
2016-05-23 17:26:00 +02:00
lClient
.Header('jwtusername', 'user1')
.Header('jwtpassword', 'user1');
2016-05-23 17:26:00 +02:00
lRest := lClient.doPOST('/login', []);
JWT := lRest.BodyAsJSONObject.GetValue('token').Value;
2016-05-23 17:26:00 +02:00
finally
lClient.Free;
end;
end;
procedure TForm5.SetJWT(const Value: String);
begin
FJWT := Value;
Memo1.Lines.Text := Value;
end;
2016-05-23 17:26:00 +02:00
end.