Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

problema con web service nusoap llamado desde visual basic

Estas en el tema de problema con web service nusoap llamado desde visual basic en el foro de Visual Basic clásico en Foros del Web. hola: tengo un pequeño problema, desarrolle un web service en php, pero tengo que acceder a el desde visual basic, con unas funciones ya definidas, ...
  #1 (permalink)  
Antiguo 10/02/2009, 14:06
 
Fecha de Ingreso: agosto-2008
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 0
problema con web service nusoap llamado desde visual basic

hola:

tengo un pequeño problema, desarrolle un web service en php, pero tengo que acceder a el desde visual basic, con unas funciones ya definidas, ahora el problema que tengo es que al enviar los parametros desde visual basic, no los puedo enviar en el mismo formato que se envia en php, me explico, aca un codigo simple de un ws en php que retorna un valor:

Código PHP:
<?php
//incluimos la clase nusoap.php
    
require_once dirname(__FILE__).'/lib/nusoap.php';

//creamos el objeto de tipo soap_server
    
$server = new soap_server();
    
$server->configureWSDL('AdministracionConvenioDePago''urn:AdministracionConvenioDePago');


$server->wsdl->addComplexType('convenio','complexType','struct','all','',
               array(
                        
'nombre' => array('name' => 'nombre''type' => 'xsd:string'),
                        ));
                        
$server->wsdl->addComplexType(
        
'convenios',
        
'complexType',
        
'array',
        
''
        
'SOAP-ENC:Array'
        array(),
        array(
            array(
'ref' => 'SOAP-ENC:arrayType'
            
'wsdl:arrayType' => 'tns:convenio[]')
            ),
        
'tns:convenio'
);



//registramos la función que vamos a implementar

    
$server->register('Devuelve_val',
        array(
            
"nombre"=>'xsd:string'
        
),
        array(
"return"=>'xsd:string')
    );


//implementamos la función devuelve_val

function Devuelve_val ($nombre){

return 
"tu nombre es ".$nombre;    
     
}


//llamamos al método service de la clase nusoap
    
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA '';
    
$server->service($HTTP_RAW_POST_DATA);
?>
ese seria el codigo del ws que funciona perfecto cuando lo llamo de un cliente php de la siguiente forma:


$result = $soap_client->call('Devuelve_val',array('nombre'=>$nombre));


ahora el problema es que si paso lso parametros de otra forma como por ej:

$result = $soap_client->call('Devuelve_val',$nombre);

no funciona, ya que tiene que ir en un array con la etiqueta 'nombre', la cual se delcara en el ws, ahora la pregunta es si se puede registrar la funcion de otra forma para que me acepte enviar los parametros sin un array osea asi

$result = $soap_client->call('Devuelve_val',$nombre);


hay alguna forma???, ya que al llamar al ws desde vb me tira error de parametros, ya que no puedo crear la misma estructura de array que en php, o por lomenos no me la reconoce, bueno y en visual estoy usando el siguiente metodo para llamar al ws:


Set SOAP = New mssoaplib30.SoapClient30
SOAP.ClientProperty("ConnectorProgID") = "MSSOAP.WinInetConnector30"
SOAP.MSSoapInit strWSDL, NombreWebService, Puer******ervice


Retorno = SOAP.Devuelve_val("hola")


la libreria usada ahi es el microsof soap toolkit v3, ahora podria ser que esta no tuviese soporte para php(no he logrado encontrar esa info), pero creo que debe ser un tema de parametros, por eso se me ocurre, intentar modificar el ws para que acepte parametros y no arreglos o cualquier otra sugerencia?????


espero que puedan ayudarme!!!

Última edición por jacto26; 11/02/2009 a las 08:59
  #2 (permalink)  
Antiguo 10/02/2009, 14:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: problema con web service nusoap

alguna sugerencia???


aun que sea la mas minima ayuda se agradece de todos modos...
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 04:00.