Bueno amigos soy nuevo en el tema de los webservices, encontre un tutorial para crearlo usando php en vez del servidor de windows, lo que me parecio conveniente porque se algo de php, y para no tener que instalar y configurar windows server en todas las maquinas de la empresa, pero bue ya fue.
El caso es que el xml me da el error:
Solo se admite un elemento de nivel superior en el xml
Aqui una cap:
No se bien donde esta el error.
Tengo un form con lo siguiente:
Código Delphi
[-]unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Soap.InvokeRegistry, Vcl.StdCtrls,
Soap.Rio, Soap.SOAPHTTPClient;
type
TForm2 = class(TForm)
HTTPRIO1: THTTPRIO;
Button1: TButton;
EditId: TEdit;
EditNombre: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses listado;
procedure TForm2.Button1Click(Sender: TObject);
var
arr:ArregloDeEstructuras;
info:Estructura;
l, i:Integer;
begin
if (editId.Text <> '') then begin
arr := (HTTPRIO1 as Consulta_de_usuariosPortType).ConsultaUsuario(StrToInt(editId.text));
end
else begin
arr := (HTTPRIO1 as Consulta_de_usuariosPortType).ConsultaUsuarios(editNombre.text);
end;
l := Length(arr);
Memo1.Lines.Clear;
for i := 0 to (l - 1) do begin
info := arr[i];
Memo1.Lines.Add('Id: ' + IntToStr(info.Id));
Memo1.Lines.Add('Nombre: ' + info.Nombre);
Memo1.Lines.Add('Apellidos: ' + info.Apellidos);
Memo1.Lines.Add('Teléfono(ext): ' + info.Telefono + '-' + IntToStr(info.Extension));
Memo1.Lines.Add('Departamento: ' + info.Departamento);
Memo1.Lines.Add('Email: ' + info.EMail);
Memo1.Lines.Add('----------------------------------');
end;
end;
end.
En este archivo incluyo una unidad creada con wsdl importer la de listado.pas. La idea fue extraida de este tuto pero decidi hacer un tema:
http://neftali.clubdelphi.com/?p=3335
Saludos