Jump to content

chamada diadoacbr

Assista tectoy.png

Mensagem de erro em UTF-8 convertida novamente para UTF-8


Paulo Sérgio
  • Este tópico foi criado há 1506 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá a todos.

Então, eu utilizo o Lazarus e a correção da revisão 14351 na unit ACBrDFeHttpWinApi acabou gerando um bug relacionado a UTF-8.
O bug no meu caso acontece porque na linha 106 pode gerar uma exceção e essa exceção vem como string UTF-8.
A exceção gerada é capturada como o seguinte código:

    except
      On E: Exception do
      begin
        raise EACBrDFeException.Create( Format( cACBrDFeSSLEnviarException,
                                        [InternalErrorCode, HTTPResultCode] ) + sLineBreak +
                                        E.Message ) ;
      end;

A chamada EACBrDFeException.Create(...) converte a mensagem do erro para UTF-8, mas ela já é UTF-8 nesse meu caso.
E isso faz com que a string fique errada, no caso dela conter acentuações.

Detalhe, que o código antes da correção dessa revisão não gerava esse bug.

Mensagem de erro que aconteceu comigo:
  "- Inativo ou Inoperante tente novamente.
   Erro Interno: 12007
   Erro HTTP: 0
   Erro: Requisição não enviada.
   Erro: 12007 - O nome do servidor não pode ser resolvido."

Desde já agradeço a atenção de todos.

Link to comment
Share on other sites

  • 4 months later...

Eu atualizei os fontes e o bug ainda acontece.
A correção que eu achei, foi alterar a chamada do método  EACBrDFeException.Create(...) por  EACBrDFeException.CreateDef(...),
dentro do método Enviar da classe TDFeHttpWinHttp da unit  ACBrDFeHttpWinApi.pas.

Veja como o código ficou:

function TDFeHttpWinHttp.Enviar(const ConteudoXML: String; const AURL: String;  const ASoapAction: String; AMimeType: String): String;
var
  Resp: TMemoryStream;
begin
  {...}
  try
    try
     {...}
    except
      On E: Exception do
      begin
        raise EACBrDFeException.CreateDef( Format( cACBrDFeSSLEnviarException,
                                        [InternalErrorCode, HTTPResultCode] ) + sLineBreak +
                                        E.Message ) ;
      end;
    end;
  finally
    Resp.Free;
  end;
end;

Estou alterando a fonte do ACBr direto, para não passar por esse bug.
Mas acho que essa correção serve para toda a comunidade.

Link to comment
Share on other sites

  • Consultores

Ué estranho.

pois só notei seu post e tópico, não tem maiores relatos no fórum!

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Este tópico foi criado há 1506 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.