2017-05-30 75 views
2

我有一個HTTPS肥皂,我想忽略證書驗證。我已經做到了與OnBeforePost事件到THTTPRIO.HTTPWebNode德爾福肥皂(httprio)忽略證書驗證

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)的默認超時。

有任何標記或者在運行時的片斷設置,自定義檢索超時設置?

回答

0

THTTPRIO.HTTPWebNode有:

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

所有這些都是以毫秒爲單位。

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

但問題的關鍵在於如何忽略證書驗證... – ar099968