HTTPRio.HTTPWebNode.OnBeforePost在 Delphi 10.3中更改,丢失参数数据

gwo2fgha  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(91)

我有一个使用HTTPRio.HTTPWebNode.OnBeforePost的组件,它以前使用data参数,但在 Delphi 的10.3版本中,这个参数被替换了。
Delphi 10.3之前:

  1. procedure TNotaBlu.BeforePostHTTPRequest(const HTTPReqResp: THTTPReqResp; Client: THTTPClient);
  2. var
  3. Certificado: ICertificate2;
  4. CertContext: ICertContext;
  5. PCertContext: Pointer;
  6. begin
  7. try
  8. Certificado := VCertificadoDigital.GetCertificate.DefaultInterface;
  9. CertContext := Certificado as ICertContext;
  10. CertContext.Get_CertContext(Integer(PCertContext));
  11. if (not InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, 100)) then

字符串
在这段代码中,我使用了internetsetoption,现在我应该如何在 Delphi 10.3中进行?如何获取data参数?

mwg9r5ms

mwg9r5ms1#

现在,您可以使用HTTPIO.HTTPWebNode.OnNeedClientCertificate事件来设置证书,如下所示:

  1. procedure TForm1.HTTPRIO1HTTPWebNode1NeedClientCertificate(const Sender: TObject; const ARequest: TURLRequest;
  2. const ACertificateList: TCertificateList; var AnIndex: Integer);
  3. begin
  4. for var i := 0 to ACertificateList.Count -1 do
  5. begin
  6. if ACertificateList[i].CertName.Contains('Test') then
  7. begin
  8. AnIndex := i;
  9. end;
  10. end;
  11. end;
  12. enter code here

字符串

相关问题