如何从 PHP 中的 SOAP WebService 的 WSDL 创建对象?
How to create an object from the WSDL of a SOAP WebService in PHP?
我正在尝试使用 PHP 调用网络服务。它工作正常,但我有一个函数,它抛出一个 NullReferenceException
。函数参数是Webservice的classes,定义在WSDL文件中。在 C# 中,我可以创建这些 classes 的实例,然后我可以使用该方法传递它们。这按预期工作,但在 PHP 中,我无法像在 C# 中那样创建 class 的这些实例。
我尝试从 WSDL 创建 class 的实例:
$myinstance1 = new SoapVar($content, SOAP_ENC_OBJECT, "Class1Name", $url_WSDL);
$myinstance2 = new SoapVar($content, SOAP_ENC_OBJECT, "Class2Name", $url_WSDL);
然后我尝试使用这些参数调用该方法:
$result = $soapclient->GetMyObjects($myinstance1, $myinstance2);
我想一个问题是,classes 之一是枚举类型。另一个class是一种整型数组。当我尝试使用这些参数调用我的函数时,我仍然收到 NullReferenceException
错误。
我认为问题出在枚举类型上,它没有正确转换。
我实例化正确了吗?
有谁知道如何解决这个问题?
我通过从 WSDL 文件生成 php classes 解决了这个问题。
为此,我使用了工具 wsdl2phpgenerator.
在我将值作为 class 个对象传递后,它起作用了。
我正在尝试使用 PHP 调用网络服务。它工作正常,但我有一个函数,它抛出一个 NullReferenceException
。函数参数是Webservice的classes,定义在WSDL文件中。在 C# 中,我可以创建这些 classes 的实例,然后我可以使用该方法传递它们。这按预期工作,但在 PHP 中,我无法像在 C# 中那样创建 class 的这些实例。
我尝试从 WSDL 创建 class 的实例:
$myinstance1 = new SoapVar($content, SOAP_ENC_OBJECT, "Class1Name", $url_WSDL);
$myinstance2 = new SoapVar($content, SOAP_ENC_OBJECT, "Class2Name", $url_WSDL);
然后我尝试使用这些参数调用该方法:
$result = $soapclient->GetMyObjects($myinstance1, $myinstance2);
我想一个问题是,classes 之一是枚举类型。另一个class是一种整型数组。当我尝试使用这些参数调用我的函数时,我仍然收到 NullReferenceException
错误。
我认为问题出在枚举类型上,它没有正确转换。 我实例化正确了吗? 有谁知道如何解决这个问题?
我通过从 WSDL 文件生成 php classes 解决了这个问题。
为此,我使用了工具 wsdl2phpgenerator.
在我将值作为 class 个对象传递后,它起作用了。