Ir para conteúdo
  • Cadastre-se

dev botao

Possível Falha Em Tacbrhttpreqresp.getwinineterror


Gabriel Bonzanini
Ver Solução Respondido por Régys Silveira,
  • Este tópico foi criado há 3346 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia.

 

Verifiquei uma falha na função TACBrHTTPReqResp.GetWinInetError, da unit ACBrHTTPReqResp. Estou utilizando Delphi 2010 e Windows 7. A mensagem de erro retornada apresenta apenas o primeiro caracter, devido ao tipo PAnsiChar da variável Buffer. Alterando para PChar funciona corretamente. Poderiam verificar se isto terá algum impacto em outros ambientes, e se poderia ser alterado para as próximas versões?

 

Muito obrigado,

 

Gabriel.

post-17668-0-04670900-1422967090_thumb.p

ACBrHTTPReqResp.pas

Link para o comentário
Compartilhar em outros sites

Juliomar, obrigado pelo retorno.

 

Fiz o teste, mas a mensagem continua retornando apenas o primeiro caracter. Parece ser problema no tipo de dado da variável mesmo, e já vi o mesmo ocorrer em outro tópico (apesar de não ser a questão central):

 

 

'Requisição não enviada. 12157 - E' - Este 'E' é a letra inicial da mensagem correta. É o mesmo que ocorreu comigo, e a solução foi alterar o tipo de dado da variável Buffer. Apenas gostaria de ver se isso confere, e se pode ser alterado no projeto principal para que não tenha que lembrar de alterar toda vez que sincronizá-lo.

 

Abraço,

 

Gabriel.

Editado por Gabriel Bonzanini
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

ola boa tarde a todos, atualizei o ACBR hoje e me deparei com um problema que pode ser o mesmo, nesta mesma unit ACBrHTTPReqResp.pas da um erro de 'Requisição não enviada' tambem para envido de DPEC, todo envio que se faz no modo DPEC esta dando este erro na lina 361 desta unit, lembrando que a emissão em modo normal esta ok.

Ao debugar o codigo abaixo a varialvel result da linha 354 ( Result := {$IFDEF FPC} AnsiToUtf8(PChar(BufStream.Memory)) {$ELSE} PAnsiChar(BufStream.Memory) {$ENDIF}; )

recebe '' (vazio), e acaba entrando no if seguinte causando a excessão.

                     aBuffer[0] := #0;
                     BufStream.Write(aBuffer, 1);
                     Result := {$IFDEF FPC} AnsiToUtf8(PChar(BufStream.Memory)) {$ELSE} PAnsiChar(BufStream.Memory) {$ENDIF};
                     if Result = '' then
                      begin
                        ErrorCode := GetLastError;
                        {$IFDEF FPC}
                        raise Exception.Create(AnsiToUtf8('Erro: Requisição não enviada.'+sLineBreak+IntToStr(ErrorCode)+' - '+GetWinInetError(ErrorCode)));
                        {$ELSE}
                        raise Exception.Create('Erro: Requisição não enviada.'+sLineBreak+IntToStr(ErrorCode)+' - '+GetWinInetError(ErrorCode));
                        {$ENDIF}
                      end
                     else if Pos('<TITLE',UpperCase(Result)) > 0 then
                      begin
                        PosError := Pos('<TITLE>',UpperCase(Result))+7;
                        ErrorMsg := trim(copy(Result, PosError, (pos('</TITLE>', UpperCase(Result)) - PosError)));
                        {$IFDEF FPC}
                        raise Exception.Create(AnsiToUtf8('Erro: Requisição não enviada.'+sLineBreak+ErrorMsg));
                        {$ELSE}
                        raise Exception.Create('Erro: Requisição não enviada.'+sLineBreak+ErrorMsg);
                        {$ENDIF}
                      end;

desde ja agradeço a atenção!

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Gleidson,

 

Em vez do DPEC já pensou em utilizar o EPEC ou SVC?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia a todos,

 

Segundo a Nota Técnica 2014/001 versão 1.10, o DPEC será desativado em 31/03/2015.

 

Como hoje é 02/03/2015, será que vale a pena, perder tempo com o DPEC?

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3346 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.