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?
Envio de arquivo zipado pelo webservice
-
- Posts: 3
- Joined: Mon May 20, 2019 3:49 pm
Re: Envio de arquivo zipado pelo webservice
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:
O conteúdo da variavel cXmlCont é que será colocado no WebService para ser enviado.
Espero que ajude.
t+
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")
Espero que ajude.
t+
Contagem/Brazil
FWH/xharbour 15.12/PELLES C, MED, DBF
FWH/xharbour 15.12/PELLES C, MED, DBF