电竞比分网-中国电竞赛事及体育赛事平台

分享

delphi調(diào)用webservice超時(shí)

 風(fēng)凌館 2016-08-24
司有個(gè)老業(yè)務(wù)系統(tǒng),用的是delphi6開發(fā)。需要調(diào)用webservice,但發(fā)現(xiàn)調(diào)用超時(shí)30秒彈出異常的問題。
網(wǎng)上查詢,說delphi7的THTTPRIO控件設(shè)置超時(shí)屬性就行了。但delphi6沒有這個(gè)屬性,只能從底層修改了。

步驟:
1.打開delphi的VCL 源碼,找到SOAPHTTPTrans.pas文件,把這個(gè)文件拷到項(xiàng)目工程文件的目錄,并加到工程中。這樣Delphi源文件修改后才能夠生效。
2.找到procedure THTTPReqResp.Connect(Value: Boolean);行
3.寫義一個(gè)變量:
    Timeout:DWORD;
4.在 FInetRoot := InternetOpen(PChar(FAgent), AccessType, PChar(FProxy), PChar(FProxyByPass), 0);代碼前添加如下代碼行:

//設(shè)置10分鐘超時(shí),10分鐘一般夠用了。
Timeout:=600000;   
InternetSetOption(nil,  INTERNET_OPTION_RECEIVE_TIMEOUT ,
    @Timeout, sizeof(Timeout));
4.重新編譯項(xiàng)目,運(yùn)行程序。以后webservice就不會(huì)受限于30秒超時(shí)報(bào)異常的問題了!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多