Ver Mensaje Individual
  #18  
Antiguo 06-05-2011
URBANO URBANO is offline
Miembro
 
Registrado: jul 2003
Ubicación: Huelva
Posts: 126
Reputación: 21
URBANO Va por buen camino
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.
__________________
El saber no ocupa lugar.
Responder Con Cita