2013-11-27 28 views
0

我正在尝试与DHL soap web服务进行通信。 通过SoapUI我得到所有正确的数据,但是当我使用PHP肥皂客户端时,我收到一个soapFault。PHP soap请求全部小写

如果我检查lastRequest ..我的整个XML是小写,我把这个请求放入SoapUI,我也收到一个错误。这是因为XML区分大小写。

$data = array(
    'DropOffType' => 'REGULAR_PICKUP', 
    'NextBusinessDay' => 'Y', 
    'Ship' => array(
     'Shipper' => array(
     'City' => 'Brussel', 
     'PostalCode' => '1000', 
     'CountryCode' => 'BE', 
    ), 
     'Recipient' => array(
     'City' => 'Paris', 
     'PostalCode' => '75008', 
     'CountryCode' => 'FR', 
    ), 
    ), 
    'Packages' => array(
     1, 
     'RequestedPackages' => array(
     'Weight' => array(
      'Value' => 10 
     ), 
     'Dimensions' => array(
      'Length' => 10, 
      'Width' => 10, 
      'Height' => 10, 
     ) 
    ) 
    ), 
    'ShipTimestamp' => '2013-11-30T17:00:00GMT+01:00', 
    'UnitOfMeasurement' => 'SI', 
    'DeclaredValueCurrencyCode' => 'USD', 
    'Account' => '270835287', 
); 


$wsseToken = $this->wsseSoapHeader(); 
$client->__setSoapHeaders($wsseToken); 

// Fetch response 
$response = $client->getRateRequest(array(
    'ClientDetail'=> $clientdet, 
    'RequestedShipment'=> $data, 
) 
); 

wsse标记是正确的,因为我可以在SoapUI中使用它。 我怎样才能发送我的请求在它原来的外壳?

Thnx提前!

+2

它会帮助,如果你会告诉你正在使用哪个肥皂客户端。什么是$客户端? – eis

回答

1

我假设你使用的是SoapClient supplied by PHP

this thread可以看出,soapclient实际上确实尊重套管(如果不是,它不适用于任何人)。但是,根据this similar thread,我认为getLastRequest()在报告时实际降低了所有的XML。但是,您的问题可能是别的。

如果您对SoapClient感到沮丧,则可以测试例如NUSoap。对我而言,它非常简单可靠。