【问题标题】:Delphi soap (httprio) ignore certificate validationDelphi soap (httprio) 忽略证书验证
【发布时间】:2017-05-30 07:56:36
【问题描述】:

我有一个 https 肥皂,我想忽略证书验证。我已经通过OnBeforePost 事件进入THTTPRIO.HTTPWebNode

procedure TMySOAP.OnBeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer);
var
  aFlagsSize: DWord;
  aFlags:     DWord;
begin
  aFlagsSize := SizeOf(aFlags);

  // get security flags
  if InternetQueryOption(Data, INTERNET_OPTION_SECURITY_FLAGS, @aFlags, aFlagsSize) then
  begin
      // add all flag for ignore validation
      aFlags := aFlags or
       SECURITY_FLAG_IGNORE_UNKNOWN_CA or
       SECURITY_FLAG_IGNORE_REVOCATION or
       SECURITY_FLAG_IGNORE_CERT_CN_INVALID or
       SECURITY_FLAG_IGNORE_CERT_DATE_INVALID or
       SECURITY_FLAG_IGNORE_WRONG_USAGE;

      // set the new flags
      InternetSetOption(Data, INTERNET_OPTION_SECURITY_FLAGS, @aFlags, aFlagsSize)
  end;
end;

它有效.. 但我有第二个问题。我的客户在没有互联网的公司防火墙后面,每个对肥皂的请求都会丢失 15 秒,因为 Windows 尝试通过互联网验证证书路径,并且此操作的默认超时时间为 15 秒(请参阅https://technet.microsoft.com/en-us/library/cc771429(v=ws.11).aspx)。

是否有任何标志或sn-p用于在运行时设置,自定义检索超时设置?

【问题讨论】:

    标签: web-services delphi ssl soap


    【解决方案1】:

    THTTPRIO.HTTPWebNode有:

    property  ConnectTimeout: Integer;
    property  SendTimeout: Integer; 
    property  ReceiveTimeout: Integer;
    

    所有这些都以毫秒为单位。

    RIO := THTTPRIO.Create(nil);
    RIO.HTTPWebNode.ReceiveTimeout := 20000; //Wait just 20 secs
    

    【讨论】:

    • 但他也要求自定义检索超时设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2013-10-16
    • 2011-08-26
    • 2013-08-06
    • 2012-08-30
    • 2016-08-04
    • 2016-04-23
    相关资源
    最近更新 更多