Como aun no he podido instalar el SOAP en delphi 5 (Casimiro Notevi y yo no perdemos la esperanza
), he estado buscanco mas informacion sobre el componente de indy TidHTTP y he conseguido realizar "post" y "get" al Web Service que me quería conectar. Os pongo el codigo utilizado para cada uno:
Código:
procedure TForm1.Get(Sender: TObject);
begin
http.Request.Username:='user';
http.Request.Password:='pass';
showmessage(http.Get('http://apidelproveedor.com'));
//esto funciona y devuelve un fichero xml con la informacion que solicito.
end;
Código:
procedure TForm1.post-subiendofichero(Sender: TObject);
var
datos: TIdMultiPartFormDataStream;
begin
http.Request.Username:='user';
http.Request.Password:='pass';
datos:= TIdMultiPartFormDataStream.Create;
datos.AddFormField('description','prueba');
datos.AddFormField('comments','comentario sobre el documento');
datos.AddFormField('reference','3');
datos.AddFile('file','C:\firmar1.pdf','application/pdf');
showmessage(http.Post('http://apidelproveedor.com', datos));
datos.free;
end;
Código:
procedure TForm1.post-sinenviarfichero(Sender: TObject);
var
aStream: TMemoryStream;
Params: TStringStream;
begin
http.Request.ContentType:='application/x-www-form-urlencoded';
http.Request.Username:='user';
http.Request.Password:='pass';
aStream := TMemoryStream.create;
Params := TStringStream.create('');
try
Params.WriteString('name=' + 'pepe' + '&');
Params.WriteString('email=' + 'pep@hotmail.com' + '&');
Params.WriteString('id-country=' + 'ES' + '&');
Params.WriteString('id-number=' + '44444444P');
with HTTP do
begin
try
HTTP.Post('http://apidelproveedor.com', Params,aStream);
except
on E: Exception do
showmessage('Error encountered during POST: ' + E.Message);
end;
end;
aStream.WriteBuffer(#0' ', 1);
showmessage(PChar(aStream.Memory));
except
end;
params.free;
aStream.free;
end;
Pero ahora tengo otra duda. En la api del proveedor me indica que mediante el "post" creo un documento en mi cuenta (esto correcto como he indicado arriba) y para borrar un documento me indica que debo utilizar la operación "delete". Pero no encuentro ninguna acción "delete" en el componente TidHTTP. Tiene otro nombre? Como podría hacer esta operación?
Gracias por sus comentarios, me estan sirviendo de mucho.
Saludos.