我是肥皂新手,我有这个任务,我需要发送请求和接收响应。但是,我得到肥皂故障异常,说明缺少或无效的参数。我已经看了几个小时的解决方案,但没有一个对我有用。
我知道我的参数不起作用,但我不知道如何发送它们。我已将它们包装在一个数组中,因为很少有解决方案说明了这一点,但它对我来说并不起作用。
如果你能看看我的情况并帮助我解决了解情况,我将非常感激。
如果我使用SoapClient连接SOAP,并获取函数和类型,我会得到以下结果:
SOAP功能:
array (
[0] => agentBalanceResult getAgentBalance(authorizationData $requesterAuthentication, agentIdentifier $targetAgent, string $productId, string $requestTag)
)
<?php
SOAP TYPES:
Array
(
[0] => struct authorizationData {
aliasCategory aliasCategory;
string aliasName;
string aliasPassword;
long mvnoId;
}
[1] => struct agentIdentifier {
long actorId;
aliasCategory aliasCategory;
string aliasName;
long mvnoId;
}
)
发送请求的我的类
class SendRequest {
private $client;
public function __construct(){
$this->client = new SoapClient(
"myurl",
[
'location' => 'myurl'
]
);
}
public function sendRequestWithData(){
//test parameters
$testParameters = [
"authorizationData" => [
"aliasCategory" => "*****",
"aliasName" => "*****",
"aliasPassword" => "*****",
"mvnoId" => "*****"
],
"agentIdentifier" => [
"actorId" => *****,
"aliasName" => "*****",
"aliasCategory" => "*****",
"mvnoId" => "*****"
],
"productId" => "*****",
"requestTag" => "*****"
];
$this->client->getAgentBalance($testParameters);
}
}
$send = new SendRequest;
$send->sendRequestWithData();
// throws Uncaught SoapFault exception: [env:Server] Missing or invalid SOAP request parameters in
答案 0 :(得分:0)
我最好的建议是使用WSDL到php生成器。它将生成与构造请求所需参数匹配的类,并且您将拥有与响应匹配的类。此外,您将拥有发送请求的类,因此如果您使用具有自动完成功能的正确IDE(例如Eclipse PDT),您将不会想知道需要哪些参数。 我不能向你提出任何其他PackageGenerator项目来生成与SoapClient WSDL结构和服务匹配的类。