oswaldVoipTapi.p 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /*------------------------------------------------------------------------
  2. File : workaround.p
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : javier.garcia
  7. Created : Tue Apr 16 11:50:36 CEST 2019
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. /* *************************** Definitions ************************** */
  11. USING System.*.
  12. USING OpenEdge.Net.URI.
  13. DEFINE VARIABLE oURI AS URI NO-UNDO.
  14. DEFINE VARIABLE HttpClient AS CLASS System.Net.WebClient.
  15. DEFINE VARIABLE webResponse AS LONGCHAR NO-UNDO.
  16. DEFINE VARIABLE oEntity AS Object NO-UNDO.
  17. DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
  18. DEFINE VARIABLE hXmlNode AS HANDLE NO-UNDO.
  19. DEFINE VARIABLE hXmlChild AS HANDLE NO-UNDO.
  20. DEFINE VARIABLE hXmlAttr AS HANDLE NO-UNDO.
  21. DEFINE VARIABLE ccHTML AS CHARACTER NO-UNDO.
  22. DEFINE VARIABLE lcHTML AS LONGCHAR NO-UNDO.
  23. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  24. DEFINE VARIABLE lok AS LOG NO-UNDO.
  25. DEFINE VARIABLE cElement AS CHARACTER NO-UNDO.
  26. DEFINE VARIABLE cValue AS CHARACTER NO-UNDO.
  27. DEFINE VARIABLE cSession AS CHARACTER NO-UNDO.
  28. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
  29. FIX-CODEPAGE (webResponse) = "UTF-8".
  30. /* ******************** Preprocessor Definitions ******************** */
  31. /* *************************** Main Block *************************** */
  32. oURI = OpenEdge.Net.URI:Parse('https://10.153.1.241').
  33. oURI:Port = 8802.
  34. oURI:Path = 'cgi-bin/gadgetapi'.
  35. oURI:AddQuery("cmd", "Login").
  36. oURI:AddQuery("gsUser", "14").
  37. oURI:AddQuery("gsPass", "14!K?s6v").
  38. System.Net.ServicePointManager:CertificatePolicy = NEW AllowCertificatePolicy().
  39. HttpClient = NEW System.Net.WebClient().
  40. webResponse = HttpClient:DownloadString(oURI:ToString()).
  41. CREATE X-DOCUMENT hXmlDoc.
  42. hXmlDoc:LOAD("LONGCHAR",webResponse,FALSE).
  43. hXmlDoc:SAVE('file', 'C:/temp/entity.xml').
  44. CREATE X-NODEREF hXmlNode .
  45. CREATE X-NODEREF hXmlChild.
  46. CREATE X-NODEREF hXmlAttr .
  47. hXmlDoc:GET-DOCUMENT-ELEMENT(hXmlNode).
  48. DO ii = 1 TO hXmlNode:NUM-CHILDREN:
  49. lok = hXmlNode:GET-CHILD(hXmlChild, ii).
  50. IF NOT lok THEN NEXT.
  51. IF hXmlChild:SUBTYPE <> 'ELEMENT' THEN NEXT.
  52. cElement = hXmlChild:NAME.
  53. lok = hXmlChild:GET-CHILD(hXmlAttr, 1).
  54. IF NOT lok THEN NEXT.
  55. cValue = hXmlAttr:NODE-VALUE.
  56. CASE cElement:
  57. WHEN 'ID' THEN
  58. cSession = cValue.
  59. WHEN 'ERROR' THEN
  60. cMessage = cValue.
  61. END CASE.
  62. END.
  63. MESSAGE cSession cMessage
  64. VIEW-AS ALERT-BOX.
  65. FINALLY:
  66. IF VALID-OBJECT (HttpClient) THEN
  67. DO:
  68. HttpClient:Dispose().
  69. DELETE OBJECT HttpClient.
  70. END.
  71. END FINALLY.