nemesis88
Bovino de alcurnia
- Desde
- 1 Feb 2009
- Mensajes
- 2.052
- Tema Autor
- #1
Hola a todos, tengo una dificultad con este problema,
en la cual tengo que crear un servicio web con nusoap y su cliente para que al ingresar un codigo de producto me retorne su precio almacenado en una BD.
Hasta ahora esto es lo que estoy haciendo :
Base de datos
Servidor : server.php
cliente : cliente.php
Me sale este error
Nota : porfavor ayudenme, no sé en que estoy mal.Salu2
en la cual tengo que crear un servicio web con nusoap y su cliente para que al ingresar un codigo de producto me retorne su precio almacenado en una BD.
Hasta ahora esto es lo que estoy haciendo :
Base de datos
Código:
create database nusoap;
use nusoap;
create table producto(
idProducto int primary key,
titulo varchar(30),
descripcion varchar(30),
precio varchar(4)
);
insert into producto values(1,'Leche Gloria','Muy buena para la salud','15');
insert into producto values(2,'Leche Gloria','Muy buena para la salud','16');
insert into producto values(3,'Leche Gloria','Muy buena para la salud','17');
insert into producto values(4,'Leche Gloria','Muy buena para la salud','18');
insert into producto values(5,'Leche Gloria','Muy buena para la salud','22');
insert into producto values(6,'Leche Gloria','Muy buena para la salud','36');
insert into producto values(7,'Leche Gloria','Muy buena para la salud','37');
Servidor : server.php
Código:
<?php
include('lib/nusoap.php');
$server = new soap_server;
$server->configureWSDL('obtenerProducto', 'urn:obtenerProducto');
$server->wsdl->addComplexType('producto','complexType','struct','all','',
array(
'idProducto' => array('name' => 'idProducto', 'type' => 'xsd:int'),
'titulo' => array('name' => 'titulo', 'type' => 'xsd:string'),
'descripcion' => array('name' => 'descripcion', 'type' => 'xsd:int' ),
'precio' => array('name' => 'precio', 'type' => 'xsd:int' ),
));
$server->register('obtenerProducto',
array('idProducto' => 'xsd:int'),
array('return'=>'tns:producto'),
'urn:obtenerProducto',
'urn:obtenerProducto#producto',
'rpc',
'encoded',
'Este método devuelve un producto.');
function obtenerProducto($id){
$con = new mysqli('localhost','root','','nusoap');
$sql = " SELECT idProducto, titulo, descripcion, precio FROM producto where idProducto = $id ";
$stmt = $con->prepare($sql);
$stmt->execute();
$stmt->bind_result($col1,$col2,$col3,$col4);
$stmt->fetch();
$row[0] = $col1;
$row[1] = $col2;
$row[2] = $col3;
$row[3] = $col4;
return array('idProducto' => $row[0],'titulo' => $row[1],'descripcion' => $row[2],'precio' => $row[3]);
}
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
cliente : cliente.php
Código:
<?php
require('lib/nusoap.php');
$l_oClient = new soapclient('http://localhost/Practica/server.php?wsdl', 'wsdl');
$l_oProxy = $l_oClient->getProxy();
$parametro = $_GET['idProducto'];
$l_stResult = $l_oProxy->obtenerProducto($parametro);
print '<h1>Producto :</h1>'
. '<br>Id Producto: ' . $l_stResult['idProducto']
. '<br>Titulo : ' . $l_stResult['titulo']
. '<br>Descripcion ' . $l_stResult['descripcion']
. '<br>Precio ' . $l_stResult['precio'];
?>
Me sale este error
Código:
Warning: SoapClient::SoapClient() expects parameter 2 to be array, string given in C:\wamp\www\Practica\cliente.php on line 5
Fatal error: Uncaught SoapFault exception: [Client] SoapClient::SoapClient() [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: Invalid parameters in C:\wamp\www\Practica\cliente.php:5 Stack trace: #0 C:\wamp\www\Practica\cliente.php(5): SoapClient->SoapClient('http://localhos...', 'wsdl') #1 {main} thrown in C:\wamp\www\Practica\cliente.php on line 5
Nota : porfavor ayudenme, no sé en que estoy mal.Salu2