我创建了一个web服务nusoap我的web服务有复杂类型,在wsdl的定义中有一个名为“Persona”的数据类型,我已经从php中消耗了,但并没有那么严重消耗。 net vb,我在vs2008中添加了引用,但不像我必须发送类型为person的参数(idpersona,nombre,apellido)我希望你能帮助我谢谢。
<?php
error_reporting(1);
require_once('lib/nusoap.php');
$client = new nusoap_client("http://localhost/nusoap/server3.php?wsdl",'wsdl');
$id="78";
$nombre="donald";
$apellido="trump";
$params =array(
'idpersona'=>$id,
'nombrepersona'=>$nombre,
'apellidopersona'=>$apellido);
$result = $client->call('insertar',array($params));
?>
<?php
$server->wsdl->addComplexType(
'Persona',
'complexType',
'struct',
'all',
'',
array(
'idpersona' => array('name' => 'idpersona', 'type' => 'xsd:int'),
'nombrepersona' => array('name' => 'nombrepersona', 'type' => 'xsd:string'),
'apellidopersona' => array('name' => 'apellidopersona', 'type' => 'xsd:string')
)
);
$server->wsdl->addComplexType(
'ArrayOfPersona',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:Persona[]')
),
'tns:Persona'
);
$server->register(
'insertar', // Nombre del método
array('datos' =>'tns:Persona'), // Parámetros de entrada
array('return' => 'xsd:string'), // Parámetros de salida
SOAP_SERVER_NAMESPACE, // Nombre del workspace
SOAP_SERVER_NAMESPACE.'#insertar', // Acción soap
'rpc', // Estilo
'encoded', // Uso
'Insertar datos de la persona' // Documentación
);
&GT;
图片here