193 lines
5.3 KiB
Plaintext
193 lines
5.3 KiB
Plaintext
#DEFINE FLAG_ICC_FORCE_CONNECTION 0x01
|
|
*!* http://www.mfinante.ro/contribuabili/link.jsp?body=/cod.do
|
|
*!* cod=1879855
|
|
Clear
|
|
SET PROCEDURE TO D:\ROA_RB\ROACONT\COMUN\PROGRAME\OPROCEDURI_COMUNE.PRG ADDITIVE
|
|
LOCAL lcResponse, lnResponse, loMyXMLHTTP
|
|
|
|
loHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
|
|
loHTTP.OPEN("POST", [http://www.mfinante.ro/contribuabili/link.jsp?body=/cod.do], .F.)
|
|
loHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
|
|
|
|
lcValues = "cod=18798551"
|
|
loHTTP.SEND(lcValues)
|
|
|
|
lnStatus = loHTTP.STATUS
|
|
lcResponse = UPPER(loHTTP.responseText)
|
|
|
|
lnLinii = ALines(laLines,lcResponse)
|
|
|
|
lcDenumire = laLines[670]
|
|
lnPos1 = Rat('>',lcDenumire,3)
|
|
lnPos2 = Rat('<',lcDenumire,2)
|
|
lcDenumire = Substr(lcDenumire, lnPos1 + 1, lnPos2 - lnPos1 - 1)
|
|
*MessageBox(lcDenumire)
|
|
*!* MESSAGEBOX(lnStatus )
|
|
*!* NU EXISTA AGENT ECONOMIC CU ACEST COD
|
|
STRTOFILE(lcResponse,"c:\test.htm")
|
|
OPEN_DEFAULT_APP("c:\test.htm")
|
|
|
|
DEFINE CLASS myXMLHTTP AS CUSTOM
|
|
|
|
oHTTP = NULL
|
|
|
|
cHost = ""
|
|
nError = 0
|
|
cError = ""
|
|
|
|
PROCEDURE INIT
|
|
LPARAMETERS tcHost
|
|
IF PCOUNT() = 1 AND TYPE('tcHost') = 'C' AND !EMPTY(tcHost)
|
|
THIS.cHost = tcHost
|
|
ENDIF
|
|
*!* THIS.oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
|
|
THIS.oHTTP = CREATEOBJECT("MSXML2.ServerXMLHTTP")
|
|
|
|
ENDPROC && init
|
|
|
|
FUNCTION CHECK_INTERNET
|
|
|
|
DECLARE INTEGER InternetCheckConnection IN wininet ;
|
|
STRING lpszUrlSTRING, INTEGER dwFlags, INTEGER dwReserved
|
|
|
|
myHost = THIS.cHost
|
|
|
|
RETURN InternetCheckConnection(myHost,FLAG_ICC_FORCE_CONNECTION,0)
|
|
ENDFUNC && CHECK_INTERNET
|
|
|
|
FUNCTION post
|
|
LPARAMETERS tcValues, tcResponse
|
|
|
|
LOCAL lcValues, loHTTP, lcResponse, lnResponse
|
|
LOCAL llAsincron
|
|
llAsincron = .T.
|
|
lnResponse = 1
|
|
tcResponse = ""
|
|
lcResponse = ""
|
|
IF .F.
|
|
* NU MAI VERIFIC CONEXIUNEA LA INTERNET - DACA ROUTERUL NU ARE INTERNET STA 21 SECUNDE SA VERIFICE :(
|
|
* POSTEZ EROAREA ASINCRON - DACA ARE INTERNET O TRIMITE
|
|
lnCheckInternet = THIS.CHECK_INTERNET()
|
|
IF lnCheckInternet <= 0
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
IF EMPTY(THIS.cHost)
|
|
RETURN
|
|
ENDIF
|
|
IF TYPE('this.oHTTP') = "O"
|
|
loHTTP = THIS.oHTTP
|
|
lcHost= THIS.cHost
|
|
|
|
loHTTP.OPEN("POST", lcHost, llAsincron)
|
|
loHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
|
|
|
|
lcValues = tcValues
|
|
loHTTP.SEND(lcValues)
|
|
|
|
IF .F.
|
|
*!* DACA FOLOSESC XMLHTTP ASINCRON TREBUIE SA ASTEPT READYSTATE = 4 IN DO WHILE
|
|
lnStatus = loHTTP.STATUS
|
|
tcResponse = UPPER(loHTTP.responseText)
|
|
lnResponse = IIF('SUCCES'$tcResponse,1,-1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN lnResponse
|
|
|
|
ENDFUNC && post
|
|
|
|
FUNCTION postError
|
|
LPARAMETERS tcErrorMsg, tcUserName, tcProgram, tcVersion, tcDatabaseUser
|
|
|
|
LOCAL lcValues, lcError, lcUserName, lcProgram, lnResponse, lcVersion, lcDatabaseUser
|
|
LOCAL laVersion
|
|
DIMENSION laVersion[12]
|
|
|
|
lcError = ALLTRIM(TRANSFORM(tcErrorMsg))
|
|
lcUserName = ALLTRIM(TRANSFORM(tcUserName))
|
|
lcProgram = ALLTRIM(TRANSFORM(tcProgram))
|
|
|
|
IF EMPTY(tcVersion) OR TYPE('tcVersion') <> 'C'
|
|
lnVersion = AGETFILEVERSION(laVersion, SYS(16,0))
|
|
IF lnVersion >= 4
|
|
lcVersion = laVersion[4]
|
|
ELSE
|
|
lcVersion = ""
|
|
ENDIF
|
|
ELSE
|
|
lcVersion = ALLTRIM(tcVersion)
|
|
ENDIF
|
|
|
|
IF EMPTY(tcDatabaseUser) OR TYPE('tcDataBaseUser') <> 'C'
|
|
*!* modificare ROASTART v 2.0.29
|
|
*!* lcDatabaseUser = IIF(TYPE('gcs') = 'C', gcS, "")
|
|
lcDatabaseUser = IIF(TYPE('gcs') = 'C', gcS, IIF(TYPE('gcHost') = 'C',gcHost, ""))
|
|
*!* modificare ROASTART v 2.0.29 ^
|
|
ELSE
|
|
lcDatabaseUser = tcDatabaseUser
|
|
ENDIF
|
|
|
|
lcError = THIS.urlencode(lcError)
|
|
|
|
lcValues = "error[errormsg]=" + lcError + "&error[username]=" + lcUserName + "&error[program]=" + lcProgram + ;
|
|
"&error[version]=" + lcVersion + "&error[databaseuser]=" + lcDatabaseUser
|
|
|
|
lnResponse = THIS.post(lcValues)
|
|
|
|
RETURN lnResponse
|
|
|
|
ENDFUNC && postError
|
|
|
|
PROCEDURE ERROR
|
|
LPARAMETERS nError,cMethod,nLine
|
|
|
|
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)
|
|
lcErrorMsg=lcErrorMsg+"Method: "+cMethod
|
|
lcCodeLineMsg=MESSAGE(1)
|
|
IF BETWEEN(nLine,1,10000) AND NOT lcCodeLineMsg="..."
|
|
lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine))
|
|
IF NOT EMPTY(lcCodeLineMsg)
|
|
lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
|
|
ENDIF
|
|
ENDIF
|
|
|
|
MESSAGEBOX(lcErrorMsg)
|
|
|
|
ENDPROC && error
|
|
|
|
FUNCTION urlencode
|
|
*
|
|
* from http://www.tek-tips.com/gviewthread.cfm/lev2/4/lev3/27/pid/184/qid/597112
|
|
* also http://fox.wikis.com/wc.dll?Wiki~VFPPortListener~VFP
|
|
* I'm confused by this code.
|
|
* I believe it doesn't translate spaces correctly
|
|
*
|
|
* a proper definition is in: http://www.ietf.org/rfc/rfc2396.txt
|
|
* starting about half way down page 5
|
|
* unreserved characters include all alphas, all digits and the following unreserved marks
|
|
* mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
|
|
*
|
|
LPARAMETER pcinstr
|
|
* ' encode Percent signs
|
|
* ' Double Quotes
|
|
* ' CarriageReturn / LineFeeds
|
|
LOCAL lcout, lni
|
|
lcout = ''
|
|
FOR lni = 1 TO LEN(pcinstr)
|
|
lcch = SUBSTR(pcinstr,lni,1)
|
|
DO CASE
|
|
CASE ISALPHA(lcch) OR ISDIGIT(lcch) OR INLIST(lcch, "-" , "_" , "." , "!" , "~" , "*" , "'" , "(" , ")")
|
|
* do nothing
|
|
CASE lcch = " "
|
|
lcch = "+"
|
|
OTHERWISE
|
|
lcch = '%' + RIGHT( TRANSFORM(ASC(lcch),'@0'), 2 )
|
|
ENDCASE
|
|
lcout = lcout + lcch
|
|
ENDFOR
|
|
RETURN lcout
|
|
ENDFUNC && UrlEncode
|
|
|
|
ENDDEFINE
|