Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

web service ...

Estas en el tema de web service ... en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estimados , tengo un web service el cual el metodo "ImportRFB" me debiese retornar "algo": Recibe como parametros : 1 string,una variable que contiene un ...
  #1 (permalink)  
Antiguo 30/12/2008, 12:56
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
web service ...

Estimados , tengo un web service el cual el metodo "ImportRFB" me debiese retornar "algo":

Recibe como parametros :

1 string,una variable que contiene un XML, 1 entero.


- <s:element name="ImportRFB">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="requestDDID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="xmlContent" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="isXCBL" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="ImportRFBResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ImportRFBResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>


Actualmente le envio :

$wsdlURL = 'http://volcado/WebServiceLuisRelease/WebServiceLuis.asmx?WSDL';
$soap = new soapclient($wsdlURL, 'WSDL');
$result = $soap->call('ImportRFB','1234,$buffer,0);
$data2=$result["ImportRFBResult"];
Le mando un echo data2 y no visualizo nada.

Me faltara algo?
Esa es la forma correcta de recibir el resultado de lo que me devuelve el metodo?

Es por trabajo asi que se los agredecere si me pegan una mano.
  #2 (permalink)  
Antiguo 30/12/2008, 13:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: web service ....ayuda por favor ...me falta poco para terminarlo...es por

Prueba hacer un var_dump($result) y ve los resultados.

Saludos.
  #3 (permalink)  
Antiguo 30/12/2008, 13:22
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: web service ....ayuda por favor ...me falta poco para terminarlo...es por

Estimado , le hice un var_dump a:


$wsdlURL = 'http://volcado/WebServiceLuisRelease/WebServiceLuis.asmx?WSDL';
$soap = new soapclient($wsdlURL, 'WSDL');

Cuando le hice un var dump
$result = $soap->call('LuisDaXmlaVinicio',$buffer,'');
var_dump($result).'<br>';
Me devolvio: bool(false)



Cuando le hice un var dump a :
$data2=$result["LuisDaXmlaVinicioResult"];
var_dump($data2).'<br>';
Me devolvio: NULL
  #4 (permalink)  
Antiguo 30/12/2008, 15:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: web service ....ayuda por favor ...me falta poco para terminarlo...es por

Si te fijas, te esta dando false, lo que indica que hay un error al llamar a la función en tu WebService, checa bien que parámetros le estas enviando y que error hay.

Saludos.
  #5 (permalink)  
Antiguo 30/12/2008, 16:30
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: web service ....ayuda por favor ...me falta poco para terminarlo...es por

Estimados , el error que me aparece es este al llamar al metodo y pasarle como parametros una variable que contiene el xml, este xml lo escribo en un archivo y esta correcto ¿que podra estar pasando?, tendre que configurar nusoap para PHP.

Favor si me pueden ayudar , se los agradecere......

HTTP Error: Unsupported HTTP response status 400 Bad Request (soapclient->response has contents of the response)


require_once('lib/nusoap.php');
$wsdlURL = 'http://volcado/WebServiceLuisRelease/WebServiceLuis.asmx?WSDL';
$soap = new soapclient($wsdlURL, 'WSDL');
if ($sError = $soap->getError())
{
echo "No se pudo realizar la operación [" . $sError . "]";
die();
}
$result = $soap->call('LuisDaXmlaVinicio',$buffer,'hola');
$data2=$result["LuisDaXmlaVinicioResult"];
if ($soap->fault)
{ // Si
echo "No se pudo completar la operaci&oacute;n";
die();
}
else
{ // No
$sError = $soap->getError();
// Hay algun error ?
if ($sError)
{ // Si
echo "Error: ".$sError;
die();
}
}
  #6 (permalink)  
Antiguo 30/12/2008, 16:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: web service ....ayuda por favor ...me falta poco para terminarlo...es por

Imprime el valor de $soap->response para que veas el error, aunque el error 400 como bien lo dice es un error de que tu request esta mal formado.

Saludos.
  #7 (permalink)  
Antiguo 30/12/2008, 19:50
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: web service ...

Estimado , cuando te refieres a que mi Request esta mal formado :
Te refieres a mi solicitud del metodo.
La variable que contiene el Xml esta correcto.

$result = $soap->call('ImportRFB','1234,$buffer,0);
$data2=$result["ImportRFBResponse"];
var_dump($data2).'<br>';


Cambie el ImportRFBResult por ImportRFBResponse e hice un :
var_dump($data2) y me mostro NULL.

Tendre que cargar alguna libreria mas?

Que estara pasando, me puedes orientar ya que el fin de año que pasare sera pesimo, tengo que tenerlo listo para el viernes , y tengo todo listo , la variable que contiene el xml que e lo mas demoroso.
  #8 (permalink)  
Antiguo 31/12/2008, 10:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: web service ...

Si te fijas, te dice que debes de imprimir $soap->response para ver el error.

Saludos.
  #9 (permalink)  
Antiguo 06/01/2009, 21:02
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: web service ...

Estimado , imprimi $soap->response y el resultado fue el siguiente:

HTTP/1.1 400 Bad Request Connection: close Date: Wed, 07 Jan 2009 02:56:07 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Cache-Control: private Content-Length: 0

Mi llamado al web service los hago asi, en donde $buffer contiene un xml.

$result = $soap->call('ImportRFB','13',$buffer,0);

Lo extraño es que cuando a la variable $buffer , la envio con comillas '$buffer', efectivamente me retorna un xml(ya que lo interpreta como texto),osea asi:

$result = $soap->call('ImportRFB','13','$buffer',0);

Pero cuando la envio sin comillas me da el error.
  #10 (permalink)  
Antiguo 06/01/2009, 23:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: web service ...

Que es lo que tiene $buffer? Creo ahi es donde esta el problema.

Saludos.
  #11 (permalink)  
Antiguo 07/01/2009, 09:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: web service ...

Amigo:

$Buffer contiene un xml .
Se puede traspasar un xml como lo estoy haciendo?

$result = $soap->call('ImportRFB','13',$buffer,0);


Es como si no me tomara el contenido de $buffer siendo que es un string.


Este es el Xml que contiene $buffer

<?xml version="1.0" encoding="ISO-8859-1" ?>
- <RequestForBid>
- <Header>
<IsIntegrated>1</IsIntegrated>
<BuyerReference>07/5038</BuyerReference>
<UserCode>scatalad</UserCode>
<Code>07/5038</Code>
<Name>REPUESTOS ELECTRICOS PARA EQUIPOS MOVILES</Name>
<Description>REPUESTOS ELECTRICOS PARA EQUIPOS MOVILES</Description>
<TypeCode />
<TechnicalOpenDate />
<TechnicalCloseDate />
<EconomicOpenDate />
<EconomicCloseDate />
<EstimatedAmount>27900</EstimatedAmount>
</Header>
- <Programmability>
- <Event>
<EventCode>40</EventCode>
<IsMandatory>1</IsMandatory>
<FromDate>0000-00-00</FromDate>
<ToDate>0000-00-00</ToDate>
<Place />
<Comment />
<HasAttendees />
</Event>
</Programmability>
- <Suppliers>
- <Record>
<OrganizationName>Serv. Comp. Y Des. De Sist. Dvs Ltd</OrganizationName>
<OrganizationTaxID>76506550-K</OrganizationTaxID>
<UserName>DCNPS: POBL. LOMAS DE QUINTERO - PASAJE B-//</UserName>
<UserEmail />
<UserPhone />
</Record>
</Suppliers>
</RequestForBid>
  #12 (permalink)  
Antiguo 07/01/2009, 10:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: web service ...

Verifica que asi sea, haz un var_dump($buffer) y ve que valor te imprime.

Saludos.
  #13 (permalink)  
Antiguo 07/01/2009, 13:13
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: web service ...

Amigo:

Al imprimir la variable $buffer

var_dump($buffer);

Me muestra lo siguiente:

string(757) "107/7406mcard00107/7406Servicio de Reparaciones AntiacidasServicio de Reparaciones Antiacidas0"

No sera por el largo del string que aguanta hasta 256 caracteres

Podre definir un string gigante o tendre que asignar el xml a un array y de ahi pasarlo por el web service.
  #14 (permalink)  
Antiguo 07/01/2009, 13:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: web service ...

Pues entonces si es la longitud prueba acotar el tamaño del string a modo de prueba, y revisa tu WSDL y verifica cual es la longitud maxima.

Saludos.
  #15 (permalink)  
Antiguo 07/01/2009, 14:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: web service ...

Amigo , creo que encontre el problema , son los malditos caracteres < y > que no me permiten enviar el xml por el web service:

Tengo que reemplazar los </hola> por &lt;/hola&gt; ,osea por html o bien ascii.

$result = $soap->call('ImportRFB','13',$buffer,0);

Muchas gracias por tu ayuda.
  #16 (permalink)  
Antiguo 07/01/2009, 14:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: web service ...

Usa htmlentities.

Saludos.
  #17 (permalink)  
Antiguo 09/01/2009, 12:20
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: web service ...

muchas gracias por haberme ayudado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:06.