Tiempo aproximado de lectura 00:05:00 min
Duda
¿Cómo descargar un archivo desde una URL?
Entorno
Cross Segmentos - TOTVS Backoffice (Línea Protheus) - MI - ADVPL - A partir de la versión 12.1.2210
Solución
Utilice la función FwRest()
Fuente
// BIBLIOTECAS NECESSÃRIAS
#Include "TOTVS.ch"
// BAIXA UM ARQUIVO .PDF DE UMA URL
User Function T170FILEGET()
Local cURL := "http://www.imt.usp.br" // URL DO SERVIÇO
Local cPath := "/wp-content/uploads/comissoes/cipa/NR5.pdf" // RECURSO DA URI
Local aHeader := {} // CABEÇALHO DE INFORMAÇÕES DA REQUISIÇÃO
Local oRest := NIL // CLIENTE PARA CONSUMO
Local nHandle := 00 // CÓDIGO DE SUPORTE AO ARQUIVO
// INSTANCIA O CLIENTE REST
oRest := FwRest():New(cURL)
// INFORMA O RECURSO E O BODY
oRest:SetPath(cPath)
// ENVIA A REQUISIÇÃO E VALIDA O RESULTADO
If (oRest:Get(aHeader))
// CRIA O NOME DO ARQUIVO (FUNÇÕES UTILIZADAS PARA EVITAR CONFLITO DE NOME)
nHandle := FCreate("\dirdoc\" + StrTran(DToS(Date()) + "_" + Time() + "_DOCUMENT.pdf", ":", ""))
FWrite(nHandle, oRest:GetResult())
FClose(nHandle)
// VERIFICA SE O ARQUIVO FOI CRIADO CORRETAMENTE
If (!File("\dirdoc\" + cFileName))
ConOut("@ADVPL: Couldn't generate *.PDF file")
EndIf
Else
ConOut("@ADVPL: Couldn't consume API")
EndIf
Return (NIL)
0 Comentarios