Foros del Web » Programando para Internet » PHP »

Consumir un servicio web

Estas en el tema de Consumir un servicio web en el foro de PHP en Foros del Web. Buenas gente, como les va? Soy nuevo en el foro Y estoy comenzando a meterme en el tema de los Servicios web, y me surgieron ...
  #1 (permalink)  
Antiguo 25/10/2010, 07:58
 
Fecha de Ingreso: octubre-2010
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Consumir un servicio web

Buenas gente, como les va? Soy nuevo en el foro
Y estoy comenzando a meterme en el tema de los Servicios web, y me surgieron un par de dudas
Estoy consumiendo un servicio web desde .Net de la siguiente forma
<?php
require_once('lib/nusoap.php');
$oSoapClient = new nusoap_client("http://localhost:50772/WebService.asmx?WSDL",true);
echo $aRespuesta = $oSoapClient->call("HelloWorld");


?>
/nota: no puse la parte de validacion de errores.

Es algo simple solo consume un servicio hecho en .Net de mi maquina local.
El problema es que se queda colgado tratando de buscar el servicio pareciera, no tira ni error ni nada. el wsdl es el siguiente:

<wsdl:definitions targetNamespace="http://tempuri.org/">

<wsdl:types>
+
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">

<s:element name="HelloWorld">
<s:complexType/>
</s:element>

<s:element name="HelloWorldResponse">

<s:complexType>

<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>

<wsdl:message name="HelloWorldSoapIn">
<wsdl:part name="parameters" element="tns:HelloWorld"/>
</wsdl:message>

<wsdl:message name="HelloWorldSoapOut">
<wsdl:part name="parameters" element="tns:HelloWorldResponse"/>
</wsdl:message>
+
<wsdl:portType name="WebServiceSoap">

<wsdl:operation name="HelloWorld">
<wsdl:input message="tns:HelloWorldSoapIn"/>
<wsdl:output message="tns:HelloWorldSoapOut"/>
</wsdl:operation>
</wsdl:portType>
+
<wsdl:binding name="WebServiceSoap" type="tns:WebServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="HelloWorld">
<soap:operation soapAction="http://tempuri.org/HelloWorld" style="document"/>

<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>

<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
+
<wsdl:binding name="WebServiceSoap12" type="tns:WebServiceSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="HelloWorld">
<soap12:operation soapAction="http://tempuri.org/HelloWorld" style="document"/>

<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>

<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
+
<wsdl:service name="WebService">

<wsdl:port name="WebServiceSoap" binding="tns:WebServiceSoap">
<soap:address location="http://localhost:50772/WebService.asmx"/>
</wsdl:port>

<wsdl:port name="WebServiceSoap12" binding="tns:WebServiceSoap12">
<soap12:address location="http://localhost:50772/WebService.asmx"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

La duda es si deberia llamar al servicio web como figura en el wsdl que es de la siguiente forma "HelloWorldSoapIn" o de la forma que se conoce el metodo "HelloWorld".?

CUalquier sugerencia es bienvenidaa, disculpen si fue un poco laargo el mensaje

Saludoss
  #2 (permalink)  
Antiguo 25/10/2010, 12:44
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Consumir un servicio web

Saludos

Pensaria que debes pasarle algun parametro segun esta linea

Cita:

<wsdl:message name="HelloWorldSoapIn">
<wsdl:part name="parameters" element="tns:HelloWorld"/>
</wsdl:message>
------------------------------------------------
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
Y el metodo que estas llamando si esta bien HelloWorld

Cita:
<wsdl:portType name="WebServiceSoap">
<wsdl:operation name="HelloWorld">

Código PHP:
<?php
require_once('lib/nusoap.php');
$oSoapClient = new nusoap_client("http://localhost:50772/WebService.asmx?WSDL",true);

$parameter=50;
$aRespuesta $oSoapClient->call("HelloWorld",
$parameter);
print_r($aRespuesta);

?>
Seria que probaras y cualquier novedad lo comentas .

Hasta Pronto
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 25/10/2010, 15:13
 
Fecha de Ingreso: octubre-2010
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Consumir un servicio web

Hola Nano_ gracias por tu pronta respuesta, probé lo que me diste y sigue sin andar, también probé crear el servicio con php y sucede lo mismo.
Lo raro es que pude consumir servicios que están públicos pero no los que creo yo.

Puede que tenga algún problema de configuración que se me este pasando?

Muchas gracias!

Saludos

Etiquetas: consumir, servicio
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 11:38.