Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Colaboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 12-01-2025
Toñico Toñico is offline
Miembro
 
Registrado: ene 2005
Posts: 56
Poder: 22
Toñico Va por buen camino
LROE Bizcaia - Indy HTTP

Hola a todos.

Antes que nada pido disculpas si cometo algún error ya que es mi primer mensaje en este foro.

Necesito vuestra ayuda porque estoy bloqueado.

Estoy intentando enviar a Bizcaia un fichero LROE 240 y para ello estoy utilizando Delphi 10.3 Rio y los componentes Indy HTTP y TIdSSLIOHandlerSocketOpenSSL.

El fichero que estoy enviando es un gzip que contiene el xml según la documentación.

El código que estoy usando es el siguiente:

Código:
Código Delphi [-]
        AHttp                       := TIdHTTP.Create(nil);
        IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
        try
                try
                        IdSSLIOHandlerSocketOpenSSL.SSLOptions.SSLVersions := [sslvTLSv1_2];
                        IdSSLIOHandlerSocketOpenSSL.SSLOptions.CertFile    := FBaiConfiguration.restServer.certificateFile;
                        IdSSLIOHandlerSocketOpenSSL.SSLOptions.KeyFile     := FBaiConfiguration.restServer.certificateFile;
                        IdSSLIOHandlerSocketOpenSSL.OnGetPassword          := GetPasswordEvent;

                        AHttp.IOHandler              := IdSSLIOHandlerSocketOpenSSL;
                        AHttp.ConnectTimeout         := 5000;
                        AHttp.Request.CustomHeaders.Clear;
                        AHttp.Request.CustomHeaders.AddValue('Accept-Encoding',             'gzip');
                        AHttp.Request.CustomHeaders.AddValue('Content-Encoding',            'gzip');
                        AHttp.Request.CustomHeaders.AddValue('Content-Type',                'octet-stream');
                        AHttp.Request.CustomHeaders.AddValue('Content-Length',              IntToStr(RecoverFileSize(TPath.Combine(FWorkFilePath, Format('LROE_240_1_1_%s.gz',[documentData.document_sid])))));
                        AHttp.Request.CustomHeaders.AddValue('eus-bizkaia-n3-version',      '1.0');
                        AHttp.Request.CustomHeaders.AddValue('eus-bizkaia-n3-content-type', 'application/xml');
                        AHttp.Request.CustomHeaders.AddValue('eus-bizkaia-n3-data',         ComposeJSONBizcaiaData); // El Json está construido según la documentación

                        Try
                                requestBody  := TFileStream.Create(TPath.Combine(FWorkFilePath, Format('LROE_240_1_1_%s.gz',[documentData.document_sid])), fmOpenRead);
                                try
                                        try
                                                responseBody := AHttp.Post(FBaiConfiguration.restServer.urlInsertDocument, requestBody);

                                                if AHttp.ResponseCode = 200 then
                                                Begin
              // Si fuera bien, leería la respuesta
                                                        Result := True;
                                                End;
                                        except
                                                on e: EIdHTTPProtocolException do
                                                begin
                                                        Result := False;
                                                        errorMessage := 'Error: Uploading document failed. ' + IntToStr(AHttp.ResponseCode) + ' - ' + AHttp.response.ResponseText;
                                                end;
                                        end;
                                finally
                                        requestBody.Free;
                                end;
                        Except
                                on e: EIdHTTPProtocolException do
                                begin
                                        Result := False;
                                        errorMessage := 'Error: Uploading document failed. ' + IntToStr(AHttp.ResponseCode) + ' - ' + AHttp.response.ResponseText;
                                end;
                        End;

                except
                        on E: Exception do
                        begin
                                Result := False;
                                errorMessage := 'Error: Uploading document TicketBAI failed.';
                        end;
                end;
        finally
                FreeAndNil(AHttp);
                FreeAndNil(IdSSLIOHandlerSocketOpenSSL);
        end;

Me devuelve siempre error 400 - Bad request

Las cabeceras que le paso creo que están bien. Las vuelco a un fichero para ver que envío y muestra lo siguiente:

Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: octet-stream
Content-Length: 8532
eus-bizkaia-n3-version: 1.0
eus-bizkaia-n3-content-type: application/xml
eus-bizkaia-n3-data: {"con":"LROE","apa":"1.1","inte":{"nif":"A99800005","nrs":"SOFTWARE GARANTE TICKETBAI PRUEBA"},"drs":{"mode":"240","ejer":"2025"}}

Alguien me puede explicar donde está el problema o algún trozo de código que me pueda ayudar.

Muchas gracias a todos.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3716 19-01-2026 20:01:34
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 03:06:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi