如何设置连接webservice的超时时间
cjhpt 2013-09-12 12:04:09 delphi有人是这样解决的,//XXX begin 2012-11-16 15:24:41 处理beforepost事件
type
TEventHandlers = class { 建一个虚拟类}
procedure aOnBeforePost(const HTTPReqResp:THTTPReqResp;Data : Pointer);
end;
//XXX end 2012-11-16 15:24:43
//XXX begin 2012-11-16 15:36:06 处理“试图引用不存在的令牌”问题
procedure TEventHandlers.aOnBeforePost(const HTTPReqResp:THTTPReqResp;Data : Pointer);
var
iTimeOut : Integer;
begin
iTimeOut := 3600000;
InternetSetOption(Data,
INTERNET_OPTION_RECEIVE_TIMEOUT,
Pointer(@iTimeOut),
SizeOf(iTimeOut));
end;
//XXX end 2012-11-16 15:36:09
//然后在需要时替换事件,以下是替换代码
RIO := THTTPRIO.Create(nil);
//XXX begin 2012-11-16 15:42:41 替换原来的BeforePost事件
RIO.HTTPWebNode.OnBeforePost := EvHandler.aOnBeforePost;
//XXX end 2012-11-16 15:42:44
我在bcb中这样改
void aOnBeforePost(THTTPReqResp HTTPReqResp, Pointer Data)
{
int iTimeOut;
iTimeOut = 30000;
InternetSetOption(Data,INTERNET_OPTION_RECEIVE_TIMEOUT,Pointer(&iTimeOut),sizeof(iTimeOut));
}
rio->HTTPWebNode->OnBeforePost = aOnBeforePost;
提示
[BCC32 Error] EsbBusService.cpp(45): E2034 Cannot convert 'void (*)(THTTPReqResp,void *)' to 'TBeforePostEvent'