he implementado un WS con NuSoap y cuando lo trato de consumir con un cliente nusoap tambien todo funciona bien pero cuando tratan de consumirlo x ejemplo desde .net reciben el siguiente mensaje:
El cliente encontró un tipo de contenido de respuesta de ' text/html, pero se esperaba 'text/xml'.
he leido que puede ser un error que devuelva el WS pero es que no logro visualizar ese error, mi pregunta es :
Como puedo forzar al ws a que la salida sea siempre un XML, aqui les dejo el codigo por si alguien me puede ayudar un poco, de verdad lo necesito muchisimo pues ya no se que otra cosa hacer!
Server:
Código PHP:
<?php
require_once 'lib/nusoap.php';
$ns = "http://www.namespace.com/";
$server = new soap_server();
$server->configureWSDL('SociosRegistrados',$ns);
$server->wsdl->schemaTargetNamespace = $ns;
$server->soap_defencoding = 'UTF-8';
$server->register('WmSocioRegistradoInsertar',array('xmlstr' => 'xsd:string'),array('return' => 'xsd:string'),$ns);
$server->register('WmSocioRegistradoActualizar',array('xmlstr' => 'xsd:string'),array('return' => 'xsd:string'),$ns);
function WmSocioRegistradoInsertar($xmlstr){
$error = 0;
$totalInsertados = 0;
$xml = @simplexml_load_string($xmlstr);
foreach ($xml->oWmSocioRegistradoInsertarIn as $cliente){
$sUsuarioWS = trim($cliente->sUsuarioWS);
$sPassWS = trim($cliente->sPassWS);
$sUsername = trim($cliente->sUsername);
$sPassword = trim($cliente->sPassword);
$sNombre = trim($cliente->sNombre);
$sLicencia = trim($cliente->sLicencia);
$sSexo = trim($cliente->sSexo);
$dFechaNac = trim($cliente->dFechaNac);
$sMovil = trim($cliente->sMovil);
$sEmail= trim($cliente->sEmail);
$iSocioRegistradoTipoPermiso = trim((int)$cliente->iSocioRegistradoTipoPermiso);
if (($sUsername != "")
&& ($iSocioRegistradoTipoPermiso != "")
&& ($iSocioRegistradoTipoPermiso != 0)
&& (is_numeric($iSocioRegistradoTipoPermiso))){
if (!encontrando($sUsername)){
if(insertando($sUsuarioWS,$sPassWS,$sUsername,$sPassword,$sNombre,$sLicencia,$sSexo,$dFechaNac,$sMovil,$sEmail,$iSocioRegistradoTipoPermiso))
$totalInsertados++;
}
}else{
$error = 1;
}
}
if ($error == 1){
$error_msj = "Ha dejado campos obligatorios vacíos ó con errores!<br />";
$salida .= "Se han insertado (".$totalInsertados.") registros.";
}else{
$salida = "Se han insertado (".$totalInsertados.") registros.";
}
$contenido = '<?xml version="1.0" encoding="UTF-8"?>';
$contenido .= '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">';
$contenido .= '<soap:Body><WmSocioRegistradoInsertarResponse xmlns="http://www.golfspain.com/">';
$contenido .= '<WmSocioRegistradoInsertarResult>';
$contenido .= '<oError>';
$contenido .= '<iError>1</iError><sMensaje></sMensaje>';
$contenido .= '</oError>';
$contenido .= '<oResp>';
if($error == 0){
$contenido .= '<iResp>1</iResp><sMensaje>Correcto</sMensaje>';
}else{
$contenido .= '<iResp>1</iResp><sMensaje>'.$error_msj.'</sMensaje>';
}
$contenido .= '</oResp>';
$contenido .= '</WmSocioRegistradoInsertarResult>';
$contenido .= '</WmSocioRegistradoInsertarResponse>';
$contenido .= '</soap:Body></soap:Envelope>';
return new soapval('return', 'xsd:string', htmlspecialchars($contenido));
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
string(720) "<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><WmSocioRegistradoInsertarRe sponse xmlns="http://www.namespace.com/"><WmSocioRegistradoInsertarResult><oError><iError >1</iError><sMensaje></sMensaje></oError><oResp><iResp>1</iResp><sMensaje>Correcto</sMensaje></oResp></WmSocioRegistradoInsertarResult></WmSocioRegistradoInsertarResponse></soap:Body></soap:Envelope>"
un millon de gracias de antemano
saludos