Php 如何发送此soap请求?

Php 如何发送此soap请求?,php,soap,Php,Soap,我有以下soap请求参数: <soap:Body> <GetProductList xmlns="http://schemas.acme.eu/"> <GetProductListRequest> <Filters> <Filter> <Name>Language</Name> <Value>lt-lt</Value> </Filter> <Filter> <

我有以下soap请求参数:

<soap:Body>
<GetProductList xmlns="http://schemas.acme.eu/">
<GetProductListRequest>
<Filters>
<Filter>
<Name>Language</Name>
<Value>lt-lt</Value>
</Filter>
<Filter>
<Name>Currency</Name>
<Value>LTL</Value>
</Filter>
</Filters>
</GetProductListRequest>
</GetProductList>
</soap:Body>
但我这里有个错误:

( ! ) Fatal error: Uncaught SoapFault exception: [soap:Server] Server was unable to process request. ---> Object reference not set to an instance of an object. in C:\wamp\www\tarpine_xml\class\acme_xml.php:25 Stack trace: #0 C:\wamp\www\tarpine_xml\class\acme_xml.php(25): SoapClient->__call('GetProductList', Array) #1 C:\wamp\www\tarpine_xml\class\acme_xml.php(25): SoapClient->GetProductList(Array) #2 C:\wamp\www\tarpine_xml\index.php(18): ACME_XML->parseACME() #3 {main} thrown in C:\wamp\www\tarpine_xml\class\acme_xml.php on line 25
没有参数的其他请求可以正常工作。。那么我的请求哪里有错误呢

已解决

我创建了以下代码:

    $parrams['GetProductListRequest']['Filters']['Filter']  = array();
    $parrams['GetProductListRequest']['Filters']['Filter'][] = array('Name' => 'Language', 'Value' => 'lt-lt');
    $parrams['GetProductListRequest']['Filters']['Filter'][] = array('Name' => 'Currency', 'Value' => 'LTL');
    $result = $client->GetProductList($parrams);

它工作得非常完美:)

不熟悉这个FW,但我认为您也需要将
GetProductListRequest
添加到请求中(这是根xml标记)

所以你应该有这样的东西:

$result = $client->GetProductList(array('GetProductListRequest'=>array('Filters' => array(
                    'Filter'=> array('Name' => 'Language', 'Value' => 'lt-lt'), 
                    'Filter'=> array('Name' => 'Currency', 'Value' => 'LTL')))));
小补丁

$params['GetProductList']['GetProductListRequest']['Filters']['Filter']  = array();
$params['GetProductList']['GetProductListRequest']['Filters']['Filter'][] = array('Name' => 'Language', 'Value' => 'lt-lt');
$params['GetProductList']['GetProductListRequest']['Filters']['Filter'][] = array('Name' => 'Currency', 'Value' => 'LTL');

不知道您正在使用哪个库,但当您在参数中定义两次条目“Filter”时,您显然犯了错误…我使用$client=new SoapClient(“);此方法适用于项GetProductListRequest,但不适用于所有请求:)
$params['GetProductList']['GetProductListRequest']['Filters']['Filter']  = array();
$params['GetProductList']['GetProductListRequest']['Filters']['Filter'][] = array('Name' => 'Language', 'Value' => 'lt-lt');
$params['GetProductList']['GetProductListRequest']['Filters']['Filter'][] = array('Name' => 'Currency', 'Value' => 'LTL');