gpt4 book ai didi

php - 看似随机的 SoapFault : not a valid method

转载 作者:可可西里 更新时间:2023-11-01 01:04:20 25 4
gpt4 key购买 nike

我的 SOAP 解决方案出现问题。有时我会收到以下错误消息:

Function (functionA) is not a valid method for this service

8 个月后编辑虽然我找不到问题的原因,但我能够解决它。每当我收到来自 API 的响应时,我都会检查 SoapFault 并发送另一个相同的请求并使用第二次返回的答案。(作为答案发布)

这发生在来自 PHP 的调用中,例如:

functionA() - expected response
functionA() - expected response
functionA() - SoapFault
functionA() - expected response

在上述所有调用中预期的结果相同,并且使用相同的参数(如果有的话)。由于它几乎适用于所有调用,所以我知道该函数和相应的 WSDL 就在那里。

我认为问题在于缓存了一个没有该功能的旧版本。我尝试禁用缓存:

ini_set("soap.wsdl_cache_enabled", "0");

并且在每次调用时都添加了一个随机的虚拟参数,并在我使用 Zend_SoapClient 时将其禁用。

'cache_wsdl' = false

我希望有人可以指出任何方向或对可能的原因有任何直接的建议。

我的代码如下:

public function __construct()
{
$wsdl = "http://catlovers.nl/index.php?wsdl&dummy=".rand(1000,9999);

$this->_client = new Zend_Soap_Client($wsdl, array(
'soapVersion' => SOAP_1_1,
'cache_wsdl' => false

));
$this->_client->setWsdlCache(false);
}

function __call($name, $arguments) // Calls are made this way
{
array_unshift($arguments, $this->_apiKey, $this->_user, $this->_password);
return call_user_func_array(array($this->_client, $name), $arguments);
}
public function getCat()
{
return ($this->__call('getCat',array()));
}

在“另一边”我有:

$server = new nusoap_server();

$server->wsdl->addComplexType('Cat', ....

$server->register( 'getCat', return Cat ...

function getCat($apikey, $email, $password)
{
$cat = $db->get("redCat");
return $cat;
}

最佳答案

首先,尝试使用内置的 SoapClient 类调用函数并打印调试信息:

$wsdl =  "http://abcd.com/index.php?wsdl&dummy=".rand(1000,9999);
$soap = new SoapClient($wsdl, array(
'cache_wsdl' => WSDL_CACHE_NONE,
'trace' => true,
));

try {
var_dump($soap->functionA());
} catch ( Exception $ex ) {
var_dump($ex);
}
var_dump($soap->__getLastRequest());
var_dump($soap->__getLastRequestHeaders());
var_dump($soap->__getLastResponse());
var_dump($soap->__getLastResponseHeaders());

这样你就知道问题出在哪里了。如果一直没问题,那就是Zend类的问题。如果没有,请查看服务响应。可能存在一些服务器端错误或具有此类 ID 的虚拟生成失败

关于php - 看似随机的 SoapFault : not a valid method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14752837/

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