Http 프로토콜에서 DataSnap Rest 서버 액세스
3318 단어 http 프로토콜
서버에 다음과 같은 사용자 인증이 있는 경우
procedure TSC.DSAuthenticationManager1UserAuthenticate(Sender: TObject;
const Protocol, Context, User, Password: string; var valid: Boolean;
UserRoles: TStrings);
var
sCheckCode : string;
begin
valid := False;
sCheckCode := CMBSrvIniSetting.SrvCnnCheckCode;
if PassWord.Equals(sCheckCode) then
begin
valid := True;
end;
end;
그러면 클라이언트가 연결할 때 이 비밀번호를 전달해야 합니다. 그렇지 않으면 401 오류가 발생합니다.
procedure TForm15.Button2Click(Sender: TObject);
var
url, params, Text: string;
code: Integer;
http: TIDHttp;
begin
http:= TIDHttp.Create(nil);
http.Request.BasicAuthentication := True;
http.request.password := ' ';
params := Edit1.Text;
url:= 'http://192.168.10.182:8081/datasnap/rest/TSM/EchoString/';
try
text := http.Get(URL+TIdURI.ParamsEnCode(params));
Edit2.Text := Text;
except
on E: Exception do
begin
end;
end;
end;
이렇게 하면 클라이언트가 서버에 정상적으로 접근할 수 있는 방법이 된다.
또한 클라이언트가 Post 방식으로 서버에 접근하면 서버의 방법은 정의할 때 앞에 Update 접두사: UpdateEchostring을 추가해야 합니다.
TIdURI 클래스는 IdURI에 정의됩니다.pas 단원.