* test4c_descarcare_raspuns.prg * Continuare test4: descarca raspunsul ANAF (nok) pentru reincarcarea originalului cu acelasi * numar (id_descarcare=3059138503), ca sa se vada mesajul exact de respingere. Doar GET/descarcare * si dezarhivare locala - nu scrie nimic in Oracle, nu conteaza ca incarcare. * * Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\storno\test4c_descarcare_raspuns.prg" SET SAFETY OFF SET TALK OFF CLOSE DATABASES PUBLIC gcUILog, gcOutDir gcOutDir = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\out\" gcUILog = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\test4c_descarcare_raspuns_log.txt" STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() ON SHUTDOWN QUIT TRY DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' IF gnHandle <= 0 DO PrLogLocal WITH 'FAIL: conectare Oracle esuata' QUIT ENDIF LOCAL loAnaf As 'AnafeFacturaServer' loAnaf = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') loAnaf.lTest = .T. loAnaf.RefreshTokenAuto() IF !loAnaf.lTest OR EMPTY(loAnaf.cToken) DO PrLogLocal WITH 'BLOCAT: garda lTest/token nu trece' QUIT ENDIF DO DescarcaSiLogheaza WITH loAnaf, '3059138503', 'reincarcare-nok' DO DescarcaSiLogheaza WITH loAnaf, '3059138527', 'storno-reincercare-ok' DO PrLogLocal WITH 'TOTAL: test terminat fara exceptie' CATCH TO loEx DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure ENDTRY QUIT ********************************************************** PROCEDURE DescarcaSiLogheaza LPARAMETERS toAnaf, tcIdDescarcare, tcLabel LOCAL loHTTP, lcServer, lnStatus, lcZip, lcDir, lcMesaj, llSucces LOCAL loEx As Exception lcServer = 'https://api.anaf.ro/test/FCTEL/rest/descarcare?id=' + tcIdDescarcare TRY loHTTP = CREATEOBJECT('winHTTP.winHTTPrequest.5.1') loHTTP.Open('GET', lcServer, .F.) loHTTP.setRequestHeader('Authorization', 'Bearer ' + toAnaf.cToken) loHTTP.Send() lnStatus = loHTTP.Status CATCH TO loEx DO PrLogLocal WITH '[' + tcLabel + '] descarcare eroare: ' + loEx.Message RETURN ENDTRY DO PrLogLocal WITH '[' + tcLabel + '] descarcare id=' + tcIdDescarcare + ' status=' + TRANSFORM(lnStatus) + ' content-type=' + loHTTP.getResponseHeader('Content-Type') IF lnStatus <> 200 DO PrLogLocal WITH '[' + tcLabel + '] raspuns brut (non-200): ' + loHTTP.ResponseText RETURN ENDIF lcZip = gcOutDir + 'test4_descarcare_' + tcIdDescarcare + '.zip' STRTOFILE(loHTTP.ResponseBody, lcZip) lcDir = '' lcMesaj = '' llSucces = MyUnzip(lcZip, @lcDir, @lcMesaj, .T.) IF !llSucces DO PrLogLocal WITH '[' + tcLabel + '] MyUnzip esuat: ' + lcMesaj + ' (zip pastrat: ' + lcZip + ')' RETURN ENDIF DO PrLogLocal WITH '[' + tcLabel + '] dezarhivat in ' + lcDir LOCAL lcFisier, laFisiere[1], lnI, lnFisiere lnFisiere = ADIR(laFisiere, ADDBS(lcDir) + '*.*') FOR lnI = 1 TO lnFisiere lcFisier = ADDBS(lcDir) + laFisiere[lnI, 1] DO PrLogLocal WITH '[' + tcLabel + '] fisier: ' + laFisiere[lnI,1] + ' (' + TRANSFORM(laFisiere[lnI,2]) + ' octeti)' IF LOWER(JUSTEXT(lcFisier)) = 'xml' DO PrLogLocal WITH '[' + tcLabel + '] continut: ' + FILETOSTR(lcFisier) ENDIF ENDFOR ENDPROC ********************************************************** PROCEDURE PrLogLocal LPARAMETERS tcMsg LOCAL lcL SET SAFETY OFF lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') STRTOFILE(lcL + TTOC(DATETIME()) + ' ' + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcUILog) ENDPROC ********************************************************** PROCEDURE PrErrLocal LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo DO PrLogLocal WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) ENDPROC