Cita:
Empezado por vicvil
Ñuño, ¿tienes algún ejemplo de cómo hacer esto con Synapse?
|
Normalmente dejo que sea el propio Synapse que se encargue del trabajo sucio, ya que él mismo incluye clases que implementan los protocolos más comunes (FTP, SMTP, POP3, HTTP...).
Intentaré describir tu caso (más o menos y de memoria):
Código Delphi
[-]
VAR
ArchivoXML: TFileStream;
ClienteHTTP: THTTPSend;
BEGIN
ClienteHTTP := THTTPSend.Create;
TRY
ClienteHTTP.Protocol := '1.1';
ClienteHTTP.UserAgent := 'Synapse HTTP Client';
ClienteHTTP.KeepAlive := TRUE;
ClienteHTTP.Cookies.Values['TOKEN'] := 'YZD0II2ApZjlM';
ClienteHTTP.MimeType := 'application/ms-excel';
IF NecesitaClave THEN
BEGIN
ClienteHTTP.Username := EditNombreUsuario.Text;
ClienteHTTP.Password := EditClave.Text
END;
ArchivoXML := TFileStream.Create (RutaArchivoXML, fmOpenRead);
TRY
ClienteHTTP.Document.CopyFrom (ArchivoXML, ArchivoXML.Size)
FINALLY
FreeAndNil (ArchivoXml)
END;
ClienteHTTP.HTTPMethod ('POST', EditURL.Text);
Application.MessageBox (
Format ('Resultado:'#10'[%d] %s ', [ClienteHTTP.ResultCode, ClienteHTTP.ResultString])
)
FINALLY
ClienteHTTP.Free
END
END
Seguramente tengas que afinar alguna cosa, pero más o menos sería así. Dudo que tengas que usar la propiedad "Headers".