| 司有個(gè)老業(yè)務(wù)系統(tǒng),用的是delphi6開(kāi)發(fā)。需要調(diào)用webservice,但發(fā)現(xiàn)調(diào)用超時(shí)30秒彈出異常的問(wèn)題。 網(wǎng)上查詢,說(shuō)delphi7的THTTPRIO控件設(shè)置超時(shí)屬性就行了。但delphi6沒(méi)有這個(gè)屬性,只能從底層修改了。 步驟: 1.打開(kāi)delphi的VCL 源碼,找到SOAPHTTPTrans.pas文件,把這個(gè)文件拷到項(xiàng)目工程文件的目錄,并加到工程中。這樣Delphi源文件修改后才能夠生效。 2.找到procedure THTTPReqResp.Connect(Value: Boolean);行 3.寫(xiě)義一個(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)異常的問(wèn)題了! | 
|  |