php soap 超时,php - 在PHP中处理Soap超时 - 堆栈内存溢出

本文介绍了在PHP中遇到SOAP超时问题时如何区分错误类型。当PHP SOAP请求超时时,会抛出SoapFault异常,可以通过检查faultcode和faultstring来识别错误。文中列举了多种可能的faultcode和对应的错误情况,并提供了模拟超时的代码示例。
摘要由CSDN通过智能技术生成

1)如果超时,PHP会抛出一个SoapFault异常,其中faultcode="HTTP"和faultstring="Error Fetching http headers" 。

2)在我看来,区分超时错误和Web服务问题的最佳方法是查看SoapFault类的faultcode和faultstring成员。

特别地,故障faultcode元素旨在由软件使用以提供用于识别故障的算法机制。

您还可以阅读PHP手册的注释,没有方法可以读取faultcode属性,因此您必须直接访问它(例如。 $e->faultcode ),因为getCode()方法不起作用。

SOAP 1.1 Spec为faultcode字段定义了四个可能的值:

VersionMismatch :处理方发现SOAP Envelope元素的名称空间无效

MustUnderstand :SOAP Header元素的直接子元素,处理方未理解或未遵守,包含值为“1”的SOAP mustUnderstand属性

客户端 :客户端类错误表示消息未正确形成或未包含相应信息才能成功。 例如,消息可能缺少正确的身份验证或支付信息。 这通常表明不应该在没有变化的情况下重新发送消息。

服务器 :服务器类错误表示无法处理消息的原因不是直接归因于消息本身的内容,而是处理消息。 例如,处理可以包括与没有响应的上游处理器通信。 该消息可能在稍后的时间点成功。

除了这些代码之外,PHP还使用HTTP代码来识别协议级别发生的错误(例如:套接字错误); 例如,如果在ext / soap / php_http.c源代码中搜索add_soap_fault ,则可以看到何时生成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值