gpt4 book ai didi

Delphi SOAP 超时?

转载 作者:行者123 更新时间:2023-12-03 15:49:04 25 4
gpt4 key购买 nike

我偶尔会遇到 SOAP 超时问题,并且我确信是连接超时导致了问题。 30秒后,我总是会得到暂停。通过谷歌搜索,我找到了可用于设置超时的 InternetSetOption 的建议,但是在我的计算机上,我有 SOAPHttpTrans.pas (CodeGear Delphi 7),它具有以下代码:

Request := HttpOpenRequest(FInetConnect, 'POST', PChar(FURLSite), nil,
nil, nil, Flags, 0{Integer(Self)});
Check(not Assigned(Request));
{ Timeouts }
if FConnectTimeout > 0 then
Check(not InternetSetOption(Request, INTERNET_OPTION_CONNECT_TIMEOUT, Pointer(@FConnectTimeout), SizeOf(FConnectTimeout)));
if FSendTimeout > 0 then
Check(not InternetSetOption(Request, INTERNET_OPTION_SEND_TIMEOUT, Pointer(@FSendTimeout), SizeOf(FSendTimeout)));
if FReceiveTimeout > 0 then
Check(not InternetSetOption(Request, INTERNET_OPTION_RECEIVE_TIMEOUT, Pointer(@FReceiveTimeout), SizeOf(FReceiveTimeout)));

如何设置连接超时?

京东

最佳答案

我必须做的是使用 OnBeforePost 处理程序来设置超时:

transport.OnBeforePost := configureHttpRequest;

procedure Tsomething.configureHttpRequest(const HTTPReqResp: THTTPReqResp; Data: Pointer);
begin
InternetSetOption(Data, INTERNET_OPTION_CONNECT_TIMEOUT, Pointer(@FconnectTimeoutMS), SizeOf(FconnectTimeoutMS));
InternetSetOption(Data, INTERNET_OPTION_SEND_TIMEOUT, Pointer(@FsendTimeoutMS), SizeOf(FsendTimeoutMS));
InternetSetOption(Data, INTERNET_OPTION_RECEIVE_TIMEOUT, Pointer(@FreceiveTimeoutMS), SizeOf(FreceiveTimeoutMS));
end;

这些选项的 MSDN 文档位于 http://msdn.microsoft.com/en-us/library/aa385328%28VS.85%29.aspx

关于Delphi SOAP 超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3913240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com