Envio de arquivo zipado pelo webservice

Post Reply
cwanderlei_cardoso
Posts: 3
Joined: Mon May 20, 2019 3:49 pm

Envio de arquivo zipado pelo webservice

Post 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?
tiaofw
Posts: 97
Joined: Fri Dec 12, 2008 4:39 pm
Location: Brasil
Contact:

Re: Envio de arquivo zipado pelo webservice

Post 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+
Contagem/Brazil
FWH/xharbour 15.12/PELLES C, MED, DBF
Post Reply