2010-01-07 14 views
5

Web servisine göndermeden önce SOAP İstemcisi tarafından oluşturulan XML'i almak mümkün mü?__soapCall'dan önce SOAP XML'i alın?

ben kopyala ve yapıştır bu webcoder yanıt çünkü parametrelerden biri ben

Server was unable to read request. 
---> There is an error in XML document (2, 408). 
---> Input string was not in a correct format. 

Bu genellikle webservice çağrıyı yakalayarak tcpmon veya başka tcp gözlemcisi programı kadar ateş içerir gibi hataları almak gerçekten yanlışsa gerek xml için metin editörü ve sorunun ne olduğunu görmek için sütun 408'e gidin.

Gönderme işlemini göndermeden önce XML alarak bu işlemi basitleştirmek isterim.

cevap

11

Bunu yapmak çok ama çok zor (neredeyse imkansız). Çok daha kolay olan şey, gönderildikten sonra isteği göndermek için SoapClient sınıf 'dahili hata ayıklama işlevselliğini kullanmaktır. Sen şöyle yapabilirsiniz: En SoapClient oluştururken

Birincisi, bu yüzden gibi izlemeyi etkinleştirmek:

$client = new SoapClient($wsdl, array('trace' => true)); 

Ardından yapmak SABUN arama yapmak ve bunu yapmak için hazır olmak için ne gerekiyorsa işlenmesi. o yapıldıktan sonra, şu size yeni gönderdiğiniz adres isteği verecektir: siz de tepkisini görmek istiyorsanız,

echo("<pre>"); //to format it legibly on your screen 
var_dump($client->__getLastRequestHeaders()); //the headers of your last request 
var_dump($client->__getLastRequest()); //your last request 

Ve şu çalışmalıdır:

var_dump($client->__getLastResponseHeaders()); //response headers 
var_dump($client->__getLastResponse()); //the response 
+0

olduğunu alınıyor istek gönderdikten sonra da benim için de çalışıyor :) çok teşekkürler – Vnuk

+1

Gerçekten göndermeden görüntüleyebilirsiniz: http://stackoverflow.com/a/1626572/1196148 –