| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /*------------------------------------------------------------------------
- File : workaround.p
- Purpose :
- Syntax :
- Description :
- Author(s) : javier.garcia
- Created : Tue Apr 16 11:50:36 CEST 2019
- Notes :
- ----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- USING System.*.
- USING OpenEdge.Net.URI.
- DEFINE VARIABLE oURI AS URI NO-UNDO.
- DEFINE VARIABLE HttpClient AS CLASS System.Net.WebClient.
- DEFINE VARIABLE webResponse AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE oEntity AS Object NO-UNDO.
- DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
- DEFINE VARIABLE hXmlNode AS HANDLE NO-UNDO.
- DEFINE VARIABLE hXmlChild AS HANDLE NO-UNDO.
- DEFINE VARIABLE hXmlAttr AS HANDLE NO-UNDO.
- DEFINE VARIABLE ccHTML AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lcHTML AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE lok AS LOG NO-UNDO.
- DEFINE VARIABLE cElement AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cValue AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cSession AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
- FIX-CODEPAGE (webResponse) = "UTF-8".
- /* ******************** Preprocessor Definitions ******************** */
- /* *************************** Main Block *************************** */
- oURI = OpenEdge.Net.URI:Parse('https://10.153.1.241').
- oURI:Port = 8802.
- oURI:Path = 'cgi-bin/gadgetapi'.
- oURI:AddQuery("cmd", "Login").
- oURI:AddQuery("gsUser", "14").
- oURI:AddQuery("gsPass", "14!K?s6v").
- System.Net.ServicePointManager:CertificatePolicy = NEW AllowCertificatePolicy().
- HttpClient = NEW System.Net.WebClient().
- webResponse = HttpClient:DownloadString(oURI:ToString()).
- CREATE X-DOCUMENT hXmlDoc.
- hXmlDoc:LOAD("LONGCHAR",webResponse,FALSE).
- hXmlDoc:SAVE('file', 'C:/temp/entity.xml').
- CREATE X-NODEREF hXmlNode .
- CREATE X-NODEREF hXmlChild.
- CREATE X-NODEREF hXmlAttr .
-
- hXmlDoc:GET-DOCUMENT-ELEMENT(hXmlNode).
- DO ii = 1 TO hXmlNode:NUM-CHILDREN:
- lok = hXmlNode:GET-CHILD(hXmlChild, ii).
- IF NOT lok THEN NEXT.
- IF hXmlChild:SUBTYPE <> 'ELEMENT' THEN NEXT.
- cElement = hXmlChild:NAME.
-
- lok = hXmlChild:GET-CHILD(hXmlAttr, 1).
- IF NOT lok THEN NEXT.
-
- cValue = hXmlAttr:NODE-VALUE.
-
- CASE cElement:
- WHEN 'ID' THEN
- cSession = cValue.
- WHEN 'ERROR' THEN
- cMessage = cValue.
- END CASE.
- END.
- MESSAGE cSession cMessage
- VIEW-AS ALERT-BOX.
- FINALLY:
- IF VALID-OBJECT (HttpClient) THEN
- DO:
- HttpClient:Dispose().
- DELETE OBJECT HttpClient.
- END.
- END FINALLY.
|