Estava tentando começar a usar a leitura de retorno em stream, usando a demo, e não consegui fazer funcionar. O método boleto.LerRetornoStream apenas retorna uma string codificada, sem preencher as propriedades do boleto.
Abaixo como é chamado na demonstração C#:
using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
{
using (StreamReader reader = new StreamReader(fileStream))
{
string retString = reader.ReadToEnd();
byte[] retByte = Encoding.UTF8.GetBytes(retString);
var retBase64 = System.Convert.ToBase64String(retByte);
var ret = boleto.LerRetornoStream(retBase64);
rtbRespostas.AppendLine(ret);
}
}
Olhando o código da LIB, pelo que pude ententer, foi criado o método TACBrLibBoleto.LerRetornoStream que parece substituir dois métodos usados para ler o arquivo diretamente: TACBrLibBoleto.LerRetorno e TACBrLibBoleto.ObterRetorno. Porém note que o retorno de LerRetornoStream é diferente, por exemplo não está implementado o código abaixo que existe em ObterRetorno:
RespRetorno := TRetornoBoleto.Create(Config.TipoResposta, Config.CodResposta);
try
RespRetorno.Processar(BoletoDM.ACBrBoleto1);
Resposta := RespRetorno.Gerar;
Finally
RespRetorno.Free;
end;
MoverStringParaPChar(Resposta, sResposta, esTamanho);
Result := SetRetorno(ErrOK, Resposta);
Enfim, não entendi muito bem o LerRetornoStream, me parece estar errado se comparar com LerRetorno.