Jump to content

Curso Dominando o ACBrMonitor
Novo Módulo Soluções de Varejo
Assine o SAC ACBr em qualquer plano e tenha acesso

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba Mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

DouglasGV

ANSWERED Envio do arquivo DRCST

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

Recommended Posts

Olá pessoal, tudo bem com vocês?

Pessoal de SC, estão conseguindo enviar o arquivo DRCST compactado e em base64, para o WebService validar a estrutura e dar o retorno?

Estou a 2 semanas tentando e nada, se alguém está conseguindo, consegue me ajudar?

Tentei enviar o exemplo que está no arquivo da SEF e mesmo assim retorna a mesma mensagem:

 

  "ResultCode": "Error",
  "Data": null,
  "Messages": [
    {
      "Message": "Conteúdo binário do arquivo ZIP é nulo.",
      "Type": "Error"
    }
  ]
}
 

Ferramenta de desenvolvimento, Delphi 10.3.1.

Desde já agradeço.

  • Like 1

Share this post


Link to post
Share on other sites

Douglas, segue código, sofri alguns dias aqui fazendo funcionar, graças a grande documentação fornecida pelo estado.

o problema que você deve estar passando é que o requestbody não pode ser um TStringStream, mudei para TStream e começou aceitar, também deixa as configurações como está abaixo, se tiver alguma coisa diferente vai voltar ao erro que esta aparecendo ai,

coloca o componente no formulário (idhttp), não coloca nenhuma propriedade e apenas seta como no código abaixo, suave amigo, abraço.

 

var:
	RequestBody: TStream;
    lResponse : TStringStream;
	ZipEncode : String;
begin

....
	// Codifica o zip:
	ZipEncode := '"' + EncodeFile(NomeZIP) + '"';

	// deixa o idhttp dessa forma:
    lResponse := TStringStream.Create();
    RequestBody := TStringStream.Create(ZipEncode, TEncoding.UTF8);
    try
    	idHttp1.Request.ContentType := 'application/json';
        IdHTTP1.Request.CustomHeaders.Clear;
        IdHttp1.Request.CustomHeaders.AddValue('Accept', 'application/json');
        IdHttp1.Request.CustomHeaders.AddValue('Host', 'https://tributario.sef.sc.gov.br');
        IdHttp1.Request.CustomHeaders.AddValue('Cache-Control', 'no-cache');
        IdHttp1.Request.CustomHeaders.AddValue('Content-Type', 'application/json');
        idHttp1.Post('https://tributario.sef.sc.gov.br/api/drcSt/arquivo/ValidarEstrutura', RequestBody, lResponse);


        lResponse.Position := 0;

        // Trata o retorno em um richedit:
        reResp.Lines.LoadFromStream(lResponse);

      finally
        lResponse.Free();
      end;

 

  • Like 2

Share this post


Link to post
Share on other sites
Em ‎10‎/‎05‎/‎2019 at 19:51, JonasBollis disse:

Douglas, segue código, sofri alguns dias aqui fazendo funcionar, graças a grande documentação fornecida pelo estado.

o problema que você deve estar passando é que o requestbody não pode ser um TStringStream, mudei para TStream e começou aceitar, também deixa as configurações como está abaixo, se tiver alguma coisa diferente vai voltar ao erro que esta aparecendo ai,

coloca o componente no formulário (idhttp), não coloca nenhuma propriedade e apenas seta como no código abaixo, suave amigo, abraço.

 

var:
	RequestBody: TStream;
    lResponse : TStringStream;
	ZipEncode : String;
begin

....
	// Codifica o zip:
	ZipEncode := '"' + EncodeFile(NomeZIP) + '"';

	// deixa o idhttp dessa forma:
    lResponse := TStringStream.Create();
    RequestBody := TStringStream.Create(ZipEncode, TEncoding.UTF8);
    try
    	idHttp1.Request.ContentType := 'application/json';
        IdHTTP1.Request.CustomHeaders.Clear;
        IdHttp1.Request.CustomHeaders.AddValue('Accept', 'application/json');
        IdHttp1.Request.CustomHeaders.AddValue('Host', 'https://tributario.sef.sc.gov.br');
        IdHttp1.Request.CustomHeaders.AddValue('Cache-Control', 'no-cache');
        IdHttp1.Request.CustomHeaders.AddValue('Content-Type', 'application/json');
        idHttp1.Post('https://tributario.sef.sc.gov.br/api/drcSt/arquivo/ValidarEstrutura', RequestBody, lResponse);


        lResponse.Position := 0;

        // Trata o retorno em um richedit:
        reResp.Lines.LoadFromStream(lResponse);

      finally
        lResponse.Free();
      end;

 

@JonasBollis Obrigado!

Consegui resolver o problema, era apenas as  aspas duplas no inicio e no fim depois de convertido em base64.

Descobri pela postagem abaixo.

Agradeço a informação!

 

 

  • Like 2

Share this post


Link to post
Share on other sites
  • Este tópico foi criado há 384 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...