Buenos días a todos:
Tengo problemas al enviar el fichero xml a Guipúzcoa pues me cambia los acentos y caracteres como la ñ, y me devuelve el error '008 El mensaje ha sido modificado en transito'.
Utilizo Delphi 11 y componentes RESTClient, RESTRequest y RESTResponse. el fichero firmado tiene codificación utf-8.
pero al enviarlo parece que no se respeta.
El código que utilizo es este:
Código Delphi
[-]procedure TForm1.Button15Click(Sender: TObject);
var
Texto:String;
S,ArchivoString: TStrings;
f1:TextFile;
FicheroAEnviar,ArchivoRespuesta : String;
begin
RESTRequest1.Method :=TRESTRequestMethod.rmPOST;
RESTRequest1.Accept:='utf-8';
RESTRequest1.AcceptCharset:='utf-8;q=0.8';
RESTClient1.SecureProtocols :=[THTTPSecureProtocol.TLS11,THTTPSecureProtocol.TLS12];
RESTClient1.ContentType:= 'application/xml;charset=UTF-8';
RESTClient1.AcceptEncoding:='utf-8;q=0.8';
RESTClient1.OnNeedClientCertificate:=RESTClient1NeedClientCertificate;
Opendialog1.Execute();
FicheroAEnviar:=OpenDialog1.FileName;
ArchivoRespuesta:=Copy(FicheroAEnviar,1,Length(FicheroAEnviar)-4)+'resp';
ArchivoString := TStringList.Create();
try
ArchivoString.LoadFromFile(FicheroAEnviar,Tencoding.UTF8);
RESTRequest1.addbody(ArchivoString.Text,ctAPPLICATION_XML);
finally
ArchivoString.Free;
end;
RESTRequest1.Execute;
var CodigoRespuesta := RESTRespuesta.StatusCode;
var Respuesta := RESTRespuesta.Content;
var Cabeceras := RESTRespuesta.Headers;
s := TStringList.Create();
S.Add(RESTRespuesta.Content);
S.SaveToFile(ArchivoRespuesta, TEncoding.UTF8);
end;
Si alguien puede ayudar estaré agradecido, pues ando desesperado, llevo casi dos semanas atascado con este problema, y ya estoy pensando en dejar al cliente.
Muchas gracias.