Как создать объект из WSDL SOAP WebService в PHP? - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь вызвать веб-сервис с PHP. Работает нормально, но у меня есть одна функция, которая выбрасывает NullReferenceException. Параметры функции являются классами Web-сервиса и определены в файле WSDL. В C # я могу создавать экземпляры этих классов, затем я могу передать их с помощью метода. Это работает как ожидалось, но в PHP я не могу создать эти экземпляры класса, как в C #.

Я попытался создать экземпляр класса из WSDL:

$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);

Полагаю, одна проблема в том, что один из классов имеет перечисление типов. Другой класс - это тип целочисленного массива. Когда я пытаюсь вызвать мои функции с этими параметрами, я все еще получаю ошибку NullReferenceException.

Я думаю, что проблема в типе enum, который не конвертируется правильно. Правильно ли я инстанцировал? У кого-нибудь есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 08 мая 2019

Я решил это, сгенерировав классы php из файла WSDL. Для этого я использовал инструмент wsdl2phpgenerator .
После того, как я передал значения как объекты класса, все заработало.

...