gpt4 book ai didi

web-services - 出现异常时如何获取 SOAP 响应?

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

我调用了第三方 Web 服务并返回了 ESOAPHTTPException 以及以下格式的消息:

此处有隐秘消息 - URL:http://webserviceurl - SOAPAction:performWithArgList

现在,该 Web 服务的支持人员已要求提供完整的 SOAP 响应。通常,我会将一个事件处理程序附加到 THTTPRIO.OnAfterExecute 并简单地将我收到的流的内容存储为参数。

但是由于 Delphi 引发了异常,因此该事件处理程序不会执行。我知道该异常实际上可能意味着服务以某种灾难性的方式失败,但仍然应该有某种响应(不是超时错误)。

在 Delphi 将响应转变为异常之前,我可以使用其他方法来捕获响应吗?

最佳答案

对于基于 ERemotableException 的异常,您需要查看 OnAfterExecute 事件,因为它代表服务发回的错误...但对于 ESOAPHTTPException (您的情况),您需要处理 OnWinInetError 事件 ( http://docwiki.embarcadero.com/VCL/en/SOAPHTTPTrans.THTTPReqResp.OnWinInetError )。

D2010 在 SOAP HTTP 处理中引入了一个错误。典型的症状是它会错过 HTTP 故障(例如当服务器繁忙时)。因此,也许这不是您遇到的问题,但如果不知道您所看到的确切错误代码或消息,则无法判断。您可以在这里找到更多详细信息:https://forums.embarcadero.com/message.jspa?messageID=304898&tstart=0

例如,如果您收到有关“句柄处于错误状态”的错误,则上述问题就是罪魁祸首。这意味着“发送”失败,但运行时愉快地继续读取响应。您可以从此线程中找到有关该主题的更多信息:https://forums.embarcadero.com/message.jspa?messageID=307048

因此,您应该处理 OnWinInetError 并获取错误代码(LastError 参数)。这可能是理解失败的关键。

干杯,

布鲁诺

关于web-services - 出现异常时如何获取 SOAP 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5014629/

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