当使用SSL URL调用我们的内部服务器之一时,TRESTClient和TRESTRequest会给出错误 首先来自Exception类ENetHTTPCertificateException,然后来自ERESTException,其中包含来自客户端的未指定证书'
我知道WinInet Api正在被使用,但是在Delphi Rest Library中没有本地方式来设置连接到忽略证书错误 - 我该如何编码呢?
或
这是否意味着服务器正在请求客户端证书?
function TdmoRestApi.GetSaLogin(var sErrorText: String): TLoginSvar;
var
LoginRoot: TLoginRootClass;
begin
Result := lsErrVilla;
RESTRequestLogin.Params.ParameterByName('TOKEN').value := FLoginToken;
RESTRequestLogin.Params.ParameterByName('X-CSRF-Token').value := 'Fetch';
try
RESTRequestLogin.Execute; //This call fails
except
on e: Exception do begin
sErrorText := e.ClassName + ' ' + e.message;
if RESTResponseLogin.StatusCode = 0 then
Exit(lsErrVilla);
end;
end;
case RESTResponseLogin.StatusCode of
200: begin
....
400: begin
....
end;
else begin
....
end;
FCsrfToken := RESTResponseLogin.Headers.Values['X-CSRF-Token'];
FLoginSvar := Result;
end;
答案 0 :(得分:0)
我找到了解决您问题的方法。我遇到了相同的问题,但是设法忽略了证书验证:
在RESTClient1组件中,将事件内的以下标志设置为false:
procedure TForm1.RESTClient1AuthEvent(const Sender: TObject; AnAuthTarget:
AuthTargetType; const ARealm, AURL: string; var AUserName, APassword:
string; ar AbortAuth: Boolean; var Persistence: TAuthPersistenceType);
begin
AbortAuth = True;
end;