¿Hay disponible alguna herramienta para PHP que pueda usarse para generar código para consumir un web service según su WSDL? Algo comparable a hacer clic en "Agregar referencia web" en Visual Studio o en el plugin de Eclipse que hace lo mismo para Java.Cómo consumir fácilmente un servicio web desde PHP
Respuesta
He tenido un gran éxito con wsdl2php. Automáticamente creará clases de contenedor para todos los objetos y métodos usados en su servicio web.
Bueno, esas características son específicas de una herramienta que está utilizando para el desarrollo en esos idiomas.
No tendría esas herramientas si (por ejemplo) estuviera usando un bloc de notas para escribir código. Entonces, tal vez deberías hacer la pregunta sobre la herramienta que estás usando.
Para PHP: http://webservices.xml.com/pub/a/ws/2004/03/24/phpws.html
he utilizado NuSOAP en el pasado. Me gustó porque es solo un conjunto de archivos PHP que puedes incluir. No hay nada que instalar en el servidor web y no hay opciones de configuración para cambiar. También tiene soporte WSDL, que es una ventaja.
En PHP 5 puede usar SoapClient en el WSDL para llamar a las funciones del servicio web. For example:
$client = new SoapClient("some.wsdl");
y $ cliente es ahora un objeto que tiene métodos de clase como se define en some.wsdl. Así que si no había un método llamado getTime en el WSDL entonces usted acaba de llamar:
$result = $client->getTime();
Y el resultado de eso sería (obviamente) estar en la variable $ resultado. Puede usar el método __getFunctions para devolver una lista de todos los métodos disponibles.
Esto es bueno, pero para comenzar rápidamente use [wsdl2php-intérprete] (https://code.google.com/p/wsdl2php-interpreter/) –
Este article explica cómo puede utilizar PHP SoapClient para llamar a un servicio web api.
HI tengo esto desde este sitio: http://forums.asp.net/t/887892.aspx?Consume+an+ASP+NET+Web+Service+with+PHP
El servicio web tiene método Add
que toma dos parametros:
<?php
$client = new SoapClient("http://localhost/csharp/web_service.asmx?wsdl");
print_r($client->Add(array("a" => "5", "b" =>"2")));
?>
Digamos que ha proporcionado la siguiente:
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://thesite.com/">
<x:Header/>
<x:Body>
<int:authenticateLogin>
<int:LoginId>12345</int:LoginId>
</int:authenticateLogin>
</x:Body>
</x:Envelope>
y
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<authenticateLoginResponse xmlns="http://thesite.com/">
<authenticateLoginResult>
<RequestStatus>true</RequestStatus>
<UserName>003p0000006XKX3AAO</UserName>
<BearerToken>Abcdef1234567890</BearerToken>
</authenticateLoginResult>
</authenticateLoginResponse>
</s:Body>
</s:Envelope>
Digamos que el acceso a http://thesite.com/ dijo que la dirección WSDL es: http://thesite.com/PortalIntegratorService.svc?wsdl
$client = new SoapClient('http://thesite.com/PortalIntegratorService.svc?wsdl');
$result = $client->authenticateLogin(array('LoginId' => 12345));
if (!empty($result->authenticateLoginResult->RequestStatus)
&& !empty($result->authenticateLoginResult->UserName)) {
echo 'The username is: '.$result->authenticateLoginResult->UserName;
}
Como se puede ver, los elementos especificados en el código XML se utilizan en el código PHP aunque el valor loginid se puede cambiar.
- 1. consumir servicio web SOAP
- 2. Consumir servicio web desde un archivo DLL .NET - app.config problema
- 3. Consumir un servicio web usando Javascript
- 4. Consumir un servicio web REST XML
- 5. consumir servicio web SOAP utilizando jquery
- 6. ¿Cómo puede Excel 2007/2010 consumir un servicio web REST?
- 7. Cómo consumir un servicio web ColdFusion con dotnet
- 8. Cómo consumir un servicio web RESTful en Lotus Notes
- 9. Consumir el servicio web SOAP en ASP.NET
- 10. ¿Cómo acceder a un servicio web PHP desde ASP.Net?
- 11. Consumir WebService con php
- 12. ¿Cómo consumir un servicio web con estado usando la clase SoapClient de PHP?
- 13. Consumir un servicio web utilizando una interfaz diferente
- 14. ¿Cómo consumir el servicio web RESTful en mi proyecto JSF?
- 15. ¿Cómo consumir un servicio relajante en .NET?
- 16. Consumir servicios web desde Oracle PL/SQL
- 17. ¿Cuál es la mejor manera de exponer un servicio WCF para que se pueda consumir fácilmente desde Java/CXF?
- 18. Cliente ASP.NET/C# para consumir un servicio web PHP/MYSQL (WSDL)
- 19. ¿Se puede consumir un servicio WCF como si fuera un servicio web ASP.NET?
- 20. ¿Cómo consumir un servicio SOAP sobre HTTPS en C#?
- 21. ¿Cómo manejar la autenticación en el servicio web PHP REST?
- 22. Consumir el servicio oData de Delphi
- 23. Cómo consumir un servicio WCF con SSRS 2008 R2
- 24. mejor manera de consumir un servicio web en un código asp.net detrás de
- 25. Consumir servicios web JSON-RPC en .NET
- 26. Llamar a un servicio web desde C++
- 27. ¿Cómo imprimo un documento HTML desde un servicio web?
- 28. Llamar al servicio web asp.net desde PHP con múltiples parámetros
- 29. cómo consumir el servicio wcf con ruby?
- 30. ¿Cómo consumir el servicio web no alojado en IIS, WCF y C# de Delphi 2007?
Bombas que intentan analizar VMWares vimService wsdl – Tim
Actualización: el enlace ha cambiado y ahora funciona, apuntando a github, por lo que los usuarios que pasan no deben omitir un enlace de trabajo debido a un comentario antiguo (muy útil, en ese momento) :) –