Ir para conteúdo
  • Cadastre-se

dev botao

Possível Falha Em Tacbrhttpreqresp.getwinineterror


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

Recommended Posts

Postado

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

Postado (editado)

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
  • 2 semanas depois ...
Postado

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!

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