我正在尝试使用第三方SOAP API。 api显然是用c#创建的,它使用数据集 - 即复杂的数据。
我的肥皂客户端是PHP。
我希望能够做到这样的事情:
class Person {
function Person ($email) {
$this->FieldName = SOME_CONSTANT;
$this->FieldValue = $email;
}
}
$signOn = array("UserName" => "myUserName", "PassWord" => "myPassWord");
$sp = new SoapClient("https://lab6.xxxxxxxxxhost.com/xxxxxxxxx/gwwebgst.asmx?WSDL", $signOn);
$person = new Person ("joe@joeDomain.com");
$params = array("parintStart" => 0,
"parintEnd" => 1000,
"parstrSortBy" => 0,
"parblnSortAsc" => true,
"parOUTintCount" => 0,
"pardstGST" => $person);
$ret = $sp->__soapCall("ReadGuestListSearch", array($params));
但是这给了我这样的反应: SoapFault异常:[soap:Server]服务器无法处理请求。 --->你调用的对象是空的。在GW01.php:27
我尝试了以下内容:
1)$ person作为数组('FieldName'=> ...'FieldValue'=> ...);同样的结果。
2)根据第三方的规范创建$ person作为XML字符串。同样的结果。
3)寻找一种将数据集构建为直接二进制数据的方法 - 我没有找到规格,但仍认为可能有效。
问题: a)有没有人有办法通过伪造的数据集从PHP到SOAP进行通信?
b)有人知道是否有必要吗?我有更简单的方法吗? (最终目标是传递第三方2条信息并获取适当的数据。)我非常感谢任何指导或帮助!
提前致谢。