Hola, necesito utilizar desde mi programa realiazo en delphi5 unos web services. Esto es algo nuevo para mi. He estado leyendo algunos hilos, recopilando información y he realizado el siguiente codigo de prueba utilizando un componente Indy.
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
http: TIdHttp;
respuesta: string;
datosPost: TIdMultiPartFormDataStream;
begin
http:= TIdHTTP.Create(Self);
http.Request.Username:= 'usuario';
http.Request.Password:= 'clave';
datosPost := TIdMultiPartFormDataStream.Create;
try
datosPost.AddFormField('description', 'ejemplo1');
datosPost.AddFormField('comments', 'firmar documento de prueba');
datosPost.AddFormField('reference', '1');
datosPost.AddFormField('file', 'C:\firmar1.pdf');
respuesta := http.Post('www.direcionwebservice', datospost);
finally
http.Free;
datospost.free;
end;
showmessage(respuesta);
end;
Según me comenta el proveedor del web services (me ha facilitado la estructura de los datos que debo incluir en el post) antes de realizar el post hay que autentificarse según la autenticación HTTP básica estándar. Por lo que he leido he entendido que esto lo realiza directamente el componente indy y únicamente tengo que pasarle el usuario y la clave, como pongo en el codigo de ejemplo, pero algo debe estar mal, ya que al ejecutar el codigo me lanza el siguiente error: "HTTP/1.1 401 Unauthorized."
Parece ser que no me autentifico correctamente, pero el usuario y la clave son correctos, ya que si pongo la direccion del servicio en un navegador, me sale una ventana pidiendo usuario y clave, introduzco las mismas que pongo en el código y si accedo al web services.
Seguro que es un error sencillo, pero es la primera vez que utilizo las indy y que realizo conexiones web services. Alguién prodría orientame un poco.
Gracias y saludos.