giulichajari
06-04-2014, 23:23:12
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:
http://i1187.photobucket.com/albums/z387/giulichajari/Dibujo_zps3a8452c3.jpg
No se bien donde esta el error.
Tengo un form con lo siguiente:
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
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses listado;
procedure TForm2.Button1Click(Sender: TObject);
var
arr:ArregloDeEstructuras;
info:Estructura;
l, i:Integer;
begin
// Segun el rellenado llamamos a uno u otro
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
El caso es que el xml me da el error:
Solo se admite un elemento de nivel superior en el xml
Aqui una cap:
http://i1187.photobucket.com/albums/z387/giulichajari/Dibujo_zps3a8452c3.jpg
No se bien donde esta el error.
Tengo un form con lo siguiente:
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
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses listado;
procedure TForm2.Button1Click(Sender: TObject);
var
arr:ArregloDeEstructuras;
info:Estructura;
l, i:Integer;
begin
// Segun el rellenado llamamos a uno u otro
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