Page 1 of 1

Envio de arquivo zipado pelo webservice

Posted: Fri Jun 14, 2019 7:29 pm
by cwanderlei_cardoso
Olá Pessoal, estou desenvolvendo a integração com o IntegraFarma e estou com dificuldade de enviar o arquivo zipado pelo webservice, estou tentando assim:

cParm := '--12345'+;
'Content-Disposition: form-data; name="datarey.gz"'+;
'--12345--'
oServer:=CreateObject( "MSXML2.ServerXMLHTTP")
oServer:Open( "POST", 'https://hml-integration.yandeh.com.br/categories' , .f. )
oServer:setRequestHeader("Authorization", "D45F40CD443E486B96BC7E551991AA0A" )
oServer:setRequestHeader("Content-type", "multipart/form-data; boundary=12345" )
oServer:Send( cParm )

mas não funciona, alguém já fez este tipo de envio?

Re: Envio de arquivo zipado pelo webservice

Posted: Sat Jun 15, 2019 12:22 pm
by tiaofw
Bom dia.

No envio de arquivos compactados que utilizo, seguindo a orientação de quem disponibiliza o web-service, faço o seguinte procedimento:

- COMPACTO O XML;

- FAÇO O BASE64;

- O BASE64 É COLOCADO COMO O CONTEÚDO A SER ENVIADO PARA O SERVIDOR;

Não sei se isso é padrão para todo web-service ou se é apenas pra quem utiliza o servidor para qual envio.

É preciso ver a documentação que disponibilizaram pra você.

Segue um exemplo:

Code: Select all

SaveFile( localexe+alltrim(sonumero(_cgc))+'.xml', cXmlConteudo)

HB_ZIPFILE( localexe+alltrim(sonumero(_cgc))+".zip", {localexe+alltrim(sonumero(_cgc))+'.xml'}, , , .t.,, .f.,,)

cXmlConteudo := Memoread(localexe+alltrim(sonumero(_cgc))+".zip")

HB_Base64EncodeFile(localexe+alltrim(sonumero(_cgc))+".zip", localexe+alltrim(sonumero(_cgc))+".z64")

cXmlCont := MEMOREAD(localexe+alltrim(sonumero(_cgc))+".z64")
 
O conteúdo da variavel cXmlCont é que será colocado no WebService para ser enviado.

Espero que ajude.

t+