Estoy haciendo un proyecto donde debo consumir unos webservices programados en .Net y yo estoy realizando las consultas en PHP. Cabe destacar que no soy la autora de estos webservices por lo tanto no tengo acceso al código y el servidor remoto tampoco es de mi pertenencia por lo que no tiene activada la libreria SOAP que PHP 5 tiene como nativa. Por lo tanto, estoy usando la liberia NuSoap.
Hay funciones donde el webservice espera como parametros lo que ellos llaman un DataSET y yo desde PHP lo hago es enviar un arreglo asociativo, y todo funciona bien. Abajo un ejemplo del codigo:
require_once('lib/nusoap.php');
$oSoapClient = new soapclient('http://url_de_webservices.asmx?WSDL', true);
$aParametros["numced"]= $this->cedula;
$aParametros["idpac"]= $this->idpac;
$aRespuesta = $oSoapClient->call("wsConsultCed",$aParametros);
Y me retorna la respuesta sin ningún problema, pero hay otras funciones que en vez de esperar un DataSet como parametros esperan un DataTable y alli es donde tengo el gravisimo problema. Si intento enviar un arreglo asociativo me da un error
Array ( [faultcode] => soap:Server [faultstring] => El servidor no puede procesar la solicitud. ---> La versión de SQL Server utilizada no es compatible con el tipo de datos 'table'. [detail] => )
luego intento convertir ese arreglo asociativo en un xml y me da el siguiente error
Error: HTTP Error: Unsupported HTTP response status 400 Bad Request (soapclient->response has contents of the response)
corrigo el error porque no soporta < o > y lo cambio < o > y ahora me muestra el primer error, en fin que no se como debo enviar esta data.
Agradeceria que alguien me diera una ayuda.
Ana Azuaje