Dúvida
Como baixar um arquivo da URL (Uniform Resource Locator)?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 12.1.17
Solução
Utilize a classe FwRest()
Fonte
// 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)
Saiba mais
FWRest - Cliente para consumo REST
Upload de arquivos via rest
1 Comentários