Использовать ASP.NET Веб-сервис в php и возвращать ошибку soap

#php #asp.net #web-services

#php #asp.net #веб-сервисы

Вопрос:

я пытаюсь вызвать веб-сервис .net на php, ниже приведен мой код.

 <?php
    $client = new SoapClient("http://test.etech.net/PanelIntegration/PanelIntegration.asmx?wsdl");

         <?php  
         $sh_param = array( 
                            'Username'    =>    'IntegratorLPI', 
                            'Password'    =>    'password531'); 
                $headers = new SoapHeader('http://wms.etech.net/', 'UserCredentials', $sh_param);
                 $client->__setSoapHeaders($headers);   



                $params = array('CustomerName' => 'Mr Smith','ContactMobileNo' => '01237 376347',
                                'AddressLine1' => '33 Amblecote Road',
                                'AddressTown' => 'Cambridgeshire',
                                'AddressPostCode' => 'NW23 6TR',
                                'VendorAddressLine1' => '80 Norton Road',
                                'VendorAddressTown' => 'Hickley ',
                                'VendorAddressCounty' => 'Cambridgeshire',
                                'VendorAddressPostCode' => 'NW23 2AQ',
                                'RegionalOfficeID' => '3',
                                'ExternalNotes' => 'Case Accepted',
                                'UPRN' => '',
                                'InstructionTypeID' => '2',
                                'PropertyTypeID' => '11',
                                'PropertyTenure' => '2',
                                'SurveyorID' => '23',
                                'RRN' => '0240-9002-0391-3520-0020',
                                'NewInstruction'=> 'true',
                                'StatusID' => '1'
                                );
                $result = $client->__soapCall("UpdateInstruction", $params );

                print_r(    $result);

    ?>
  

я получил эту ошибку
Неустранимая ошибка: неперехваченное исключение SoapFault: [soap:Server] Серверу не удалось обработать запрос. —> Ссылка на объект не установлена для экземпляра объекта. в C:xampphtdocstest2.php:33 Трассировка стека: # 0 C:xampphtdocstest2.php (33): SoapClient->__soapCall(‘UpdateInstructi…’, массив) #1 {main}, введенный в C:xampphtdocstest2.php в строке 33

Ответ №1:

Вероятно, вам нужно отправить что-то вроде:

  $result = $client->__soapCall("UpdateInstruction", array('Instruction' => $params );
  

Где Инструкция — это имя объекта, который вы передаете.

Ответ №2:

Похоже, что NullReferenceException был выдан на стороне сервера. Итак, это вопрос параметров любой функции, возникающей на стороне сервера, генерирующей эту ошибку.

Независимо от того, почему, согласно рекомендациям, это ошибка в .СЕТЕВОЙ сервис. NullReferenceException Действительно следует заменить на что-то более конкретное.

Можете ли вы связаться с тем, кто написал сервис, чтобы получить дополнительную информацию для устранения неполадок? Вполне возможно, что у вас в $params массиве неверно указан параметр, но вам, вероятно, понадобится некоторая помощь от разработчика сервиса.

Комментарии:

1. что ж, Эндрю, спасибо за ваш ответ, но этот веб-сервис работает нормально, когда я вызываю .net с тем же параметром. любой другой способ вызвать этот сервис на php. спасибо