Ver Mensaje Individual
  #8  
Antiguo 02-11-2015
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por vicvil Ver Mensaje
Ñ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'; { Puedes poner lo que te plazca. }
      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) { Sólo destruye si existe, si no, lo ignora y evita el error. }
      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".
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita