jjzjj

soapClient

全部标签

PHP SoapClient 不处理 WSDL 中的抽象和替换组属性

我正在使用他们提供的wsdl向加拿大邮政发送调用,其中包含如下部分:在他们的代码示例中,他们扩展了Soap类并覆盖了__doRequest()像这样的SOAP方法:/*NeedtooverrideSoapClientbecausetheabstractelement'groupIdOrTransmitShipment'isexpectedtobeintherequestinorderforvalidationtopass.So,wegiveitwhatitexpects,butin__doRequestwemodifytherequestbyremovingtheabstractele

php - 将 PHP SoapClient 与本地 WSDL 文件(非 URI)一起使用的任何解决方法?

我有一个在CLI模式下运行的应用程序,它既没有也不需要运行本地httpd。应用程序使用SOAP与Web服务提供者进行传出交互。有问题的提供商存在一些可用性问题,我们正在尝试通过根据他们的建议在本地托管WSDL文件来减少问题的数量。SoapClient构造函数(在WSDL模式下)似乎只能使用URIWSDL文件,但我正在尝试找出解决此限制的方法,并让它从本地文件系统中读取WSDL文件某种方式。我很惊讶SoapClient构造函数没有传递文件名或文本字符串的选项,我之前可以简单地阅读。有没有人对如何避开这个限制并做我正在尝试的事情提出建议? 最佳答案

php - 将 PHP SoapClient 与本地 WSDL 文件(非 URI)一起使用的任何解决方法?

我有一个在CLI模式下运行的应用程序,它既没有也不需要运行本地httpd。应用程序使用SOAP与Web服务提供者进行传出交互。有问题的提供商存在一些可用性问题,我们正在尝试通过根据他们的建议在本地托管WSDL文件来减少问题的数量。SoapClient构造函数(在WSDL模式下)似乎只能使用URIWSDL文件,但我正在尝试找出解决此限制的方法,并让它从本地文件系统中读取WSDL文件某种方式。我很惊讶SoapClient构造函数没有传递文件名或文本字符串的选项,我之前可以简单地阅读。有没有人对如何避开这个限制并做我正在尝试的事情提出建议? 最佳答案

PHP SoapClient 超时

无论如何,SoapClient请求是否会超时并抛出异常。截至目前,我得到PHP服务器响应超时,在我的例子中是60秒。基本上我想要的是,如果在一定时间内没有来自Web服务的任何回复,则会抛出一个异常,我可以捕获它。60秒警告不是我想要的。 最佳答案 ini_set("default_socket_timeout",15);$client=newSoapClient($wsdl,array(......));Theconnection_timeoutoptiondefinesatimeoutinsecondsfortheconnecti

PHP SoapClient 超时

无论如何,SoapClient请求是否会超时并抛出异常。截至目前,我得到PHP服务器响应超时,在我的例子中是60秒。基本上我想要的是,如果在一定时间内没有来自Web服务的任何回复,则会抛出一个异常,我可以捕获它。60秒警告不是我想要的。 最佳答案 ini_set("default_socket_timeout",15);$client=newSoapClient($wsdl,array(......));Theconnection_timeoutoptiondefinesatimeoutinsecondsfortheconnecti

php - 如何转储 SoapClient 请求进行调试?

我需要调试一些使用soap客户端的代码。我在php.net中找到了getLast*方法,但是当我尝试获取最后一个调试请求时,它返回NULLChangePowerUnit(array("PowerValue"=>100,"fromPowerUnit"=>"horsepower","toPowerUnit"=>"megawatts"));echo"======REQUESTHEADERS=====".PHP_EOL;var_dump($client->__getLastRequestHeaders());echo"=========REQUEST==========".PHP_EOL;va

php - 如何转储 SoapClient 请求进行调试?

我需要调试一些使用soap客户端的代码。我在php.net中找到了getLast*方法,但是当我尝试获取最后一个调试请求时,它返回NULLChangePowerUnit(array("PowerValue"=>100,"fromPowerUnit"=>"horsepower","toPowerUnit"=>"megawatts"));echo"======REQUESTHEADERS=====".PHP_EOL;var_dump($client->__getLastRequestHeaders());echo"=========REQUEST==========".PHP_EOL;va

php - 肥皂错误 : Parsing WSDL: Unknown required WSDL extension 'http://schemas.xmlsoap.org/ws/2004/09/policy' in PHP SoapClient while calling SAP PI

我正在尝试实现在SAPPI系统上运行的Web服务。我得到的WSDL看起来像这样:a8b7948ac2e211e2b2380000001f0d6abf49af09c36c11e299790000001f0d6a我的PHP文件如下所示(目前没有其他内容):当我运行脚本时,出现以下错误:Fatalerror:UncaughtSoapFaultexception:[WSDL]SOAP-ERROR:ParsingWSDL:UnknownrequiredWSDLextension'http://schemas.xmlsoap.org/ws/2004/09/policy'in/srv/www/htd

php - 来自本地 XML 的模拟 SoapClient 响应

我想用文件中的XML模拟\SoapClient的响应。如何在SoapClient从文件返回时创建一个stdClass对象。客户端已经包装了SoapClient,因此可以轻松模拟响应。我的模拟是这样的:$soapClient->expects($this->once())->method('call')->will($this->returnValue(simplexml_load_string(file_get_contents(__DIR__.'/../../../Resources/file.xml'))));但这会返回SimpleXml而不是stdClass。更新:提议的json

php - 我可以强制 SoapClient 将数组作为数组返回吗?

我正在使用SoapClient获取一些数据。我从其中一个电话中得到了这个结果:stdClassObject([payTransIncome]=>stdClassObject([item]=>stdClassObject([payTransId]=>141281[payTransItId]=>630260[payTransBuyerId]=>1311)))但是这个WebAPI的文档说payTransIncome是一个数组。在我看来,SoapClient找到了一个单元素数组并将其转换为单个stdClass对象。这使得解析变得更加困难,因为有时我认为它实际上可能返回超过1个元素。当然,我可以