0
我試圖使用nusoap
客戶端,並與正常SoapClient
調用GetHotels
功能和調用函數時,我有這個問題,它返回以下錯誤:如何使PHP頭部安全性調用PHP SOAP?
Uncaught SoapFault exception: [a: InternalServiceFault] Object reference not set to an instance of an object.
我用這個代碼nusoap_client
$client = new nusoap_client("http://amandaws.absolutent.it/Booking.svc" , 'wsdl');
$bodyxml =('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:oas="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:tem="http://tempuri.org/">
<soapenv:Header>
<oas:Security>
<oas:UsernameToken>
<oas:Username>XXX</oas:Username>
<oas:Password>XXX</oas:Password>
</oas:UsernameToken>
</oas:Security>
</soapenv:Header>
<soapenv:Body>
<tem:BGH_Request Language="IT">
<tem:Criteria HotelCode="FID001" IDRegione="" IDProvincia="" IDComune="" IDLocalita="" IDLineaProdotto="" IDZona="" MaxResults="200" />
</tem:BGH_Request>
</soapenv:Body>
</soapenv:Envelope>');
$client->soap_defencoding = 'utf-8';
$client->operation = "GetHotels";
$result = $client->send($client->serializeEnvelope($bodyxml), "http://tempuri.org/IBooking/GetHotels");
print_r($result);
當我打印$result
,我得到這個陣列消息
Array
(
[faultcode] => a:InternalServiceFault
[faultstring] => Array
(
[!xml:lang] => en-GB
[!] => Object reference not set to an instance of an object.
)
[detail] => Array
(
[ExceptionDetail] => Array
(
[HelpLink] =>
[InnerException] =>
[Message] => Object reference not set to an instance of an object.
[StackTrace] => at Absolute.Web.Common.UoW.TransactionService.InTrasaction(Action actionbeBeforeCommit)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.IBookingProxy.GetHotels(BookingGetHotelsMessageRequest request)
at SyncInvokeGetHotels(Object , Object[] , Object[])
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
[Type] => System.NullReferenceException
)
)
)
如果有人可以幫助我,我會非常好看
謝謝。我已經解決了這個問題,沒有問題發送所有的XML請求與頭,我在請求中的語法不好。來自薩爾瓦多的問候 –