Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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.

  • 4 meses depois ...
Postado

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.

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...