Jump to content

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

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

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...