Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php SoapClient发送soap请求?_Php_Soap - Fatal编程技术网

如何使用php SoapClient发送soap请求?

如何使用php SoapClient发送soap请求?,php,soap,Php,Soap,我想使用带有php SoapClient的soap发送下面的对象 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adin="http://3e.pl/ADInterface"> <soapenv:Header/> <soapenv:Body> <adin:queryData> <adi

我想使用带有php SoapClient的soap发送下面的对象

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adin="http://3e.pl/ADInterface">
   <soapenv:Header/>
   <soapenv:Body>
      <adin:queryData>
         <adin:ModelCRUDRequest>
            <adin:ModelCRUD>
               <adin:serviceType>ReadSalesOrder</adin:serviceType>
               <adin:TableName>XX_RV_Interface_Order</adin:TableName>
               <adin:RecordID>0</adin:RecordID>
               <adin:Filter></adin:Filter>
               <adin:Action>Read</adin:Action>
               <!--Optional:-->
               <adin:DataRow>
                  <!--Zero or more repetitions:-->
                  <adin:field type="integer" column="C_BPartner_ID" lval="" disp="" edit="" error="" errorVal="">
                     <adin:val>1000643</adin:val>
                  </adin:field>
               </adin:DataRow>
            </adin:ModelCRUD>
            <adin:ADLoginRequest>
               <adin:user>username</adin:user>
               <adin:pass>password</adin:pass>
               <adin:lang>zh_CN</adin:lang>
               <adin:ClientID>1000000</adin:ClientID>
               <adin:RoleID>1000029</adin:RoleID>
               <adin:OrgID>1000000</adin:OrgID>
               <adin:WarehouseID>1000023</adin:WarehouseID>
            </adin:ADLoginRequest>
         </adin:ModelCRUDRequest>
      </adin:queryData>
   </soapenv:Body>
</soapenv:Envelope>
致命错误:未捕获的SoapFault异常:[soap:Client]参数ModelCrudeQuest不存在


SOAP客户端必须在启动之前初始化

$client=新的SoapClient($wsdl)

问题不在于soap调用,而在于发送或接收soap的数据。soap是令人沮丧的,因为您正在另一台服务器上调用一个函数,而在该服务器上抛出的任何错误都会在您的服务器上触发。因此,如果它们的函数有致命错误,那么您的代码将有致命错误。这就是为什么所有soap调用都必须在try-catch中的原因。

我添加了该语句,而不是这个原因。您找到了解决方案吗?你能分享吗,我也一样!
$wsdl = 'http://example.com/ModelADService?wsdl';
$client = new SoapClient($wsdl);
$result = $client->__soapCall('queryData', array(
    'ModelCRUDRequest' => array(
        'ModelCRUD' => array(
            'serviceType' => 'ReadSalesOrder',
            'TableName' => 'XX_RV_Interface_Order',
            'RecordID' => 0,
            'Filter' => '',
            'Action' => 'Read',
            'DataRow' => array(
                'field' => array(
                    'type' => 'integer',
                    'column' => 'C_BPartner_ID',
                    'lval' => '',
                    'disp' => '',
                    'edit' => '',
                    'error' => '',
                    'errorVal' => '',
                    'val' => 1000643,
                )
            )
        ),
        'ADLoginRequest' => array(
            'user' => 'username',
            'pass' => 'password',
            'lang' => 'zh_CN',
            'ClientID' => 1000000,
            'RoleID' => 1000029,
            'OrgID' => 1000000,
            'WarehouseID' => 1000023,
            'stage' => '',
        ),
    ),
));

var_dump($result);