Web services delphisoap(httprio)忽略证书验证
我有一个https soap,我想忽略证书验证。我已经通过Web services delphisoap(httprio)忽略证书验证,web-services,delphi,ssl,soap,Web Services,Delphi,Ssl,Soap,我有一个https soap,我想忽略证书验证。我已经通过OnBeforePost事件在THTTPRIO.HTTPWebNode中实现了这一点: procedure TMySOAP.OnBeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer); var aFlagsSize: DWord; aFlags: DWord; begin aFlagsSize := SizeOf(aFlags); // get sec
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;
它起作用了。。但我还有第二个问题。我的客户端位于没有internet的公司防火墙后面,每个对soap的请求都会丢失15秒,因为Windows尝试通过internet验证证书路径,并且此操作的默认超时为15秒(请参阅)
在运行时设置自定义检索超时设置是否有任何标志或代码段?THTTPRIO.HTTPWebNode具有:
property ConnectTimeout: Integer;
property SendTimeout: Integer;
property ReceiveTimeout: Integer;
它们都以毫秒为单位
RIO := THTTPRIO.Create(nil);
RIO.HTTPWebNode.ReceiveTimeout := 20000; //Wait just 20 secs
THTTPRIO.HTTPWebNode具有:
property ConnectTimeout: Integer;
property SendTimeout: Integer;
property ReceiveTimeout: Integer;
它们都以毫秒为单位
RIO := THTTPRIO.Create(nil);
RIO.HTTPWebNode.ReceiveTimeout := 20000; //Wait just 20 secs
但他也要求自定义检索超时设置。但他也要求自定义检索超时设置。