httprequest.monkey2 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. Namespace httprequest
  2. #Import "<std>"
  3. Using std..
  4. #If __TARGET__="windows" Or __TARGET__="linux"
  5. #Import "httprequest_desktop"
  6. #Import "bin/wget.exe"
  7. #Else If __TARGET__="macos" Or __TARGET__="ios"
  8. #Import "httprequest_ios"
  9. #Elseif __TARGET__="emscripten"
  10. #Import "httprequest_emscripten"
  11. #Elseif __TARGET__="android"
  12. #Import "httprequest_android"
  13. #Endif
  14. Enum ReadyState
  15. Unsent=0
  16. Opened=1
  17. HeadersReceived=2
  18. Loading=3
  19. Done=4
  20. Error=5
  21. End
  22. Class HttpRequestBase
  23. Field ReadyStateChanged:Void()
  24. Property Timeout:Float()
  25. Return _timeout
  26. Setter( timeout:Float )
  27. _timeout=timeout
  28. End
  29. Property ReadyState:ReadyState()
  30. Return _readyState
  31. End
  32. Property ResponseText:String()
  33. Return _response
  34. End
  35. Property Status:Int()
  36. Return _status
  37. End
  38. Method Open( req:String,url:String )
  39. OnOpen( req,url )
  40. End
  41. Method SetHeader( header:String,value:String )
  42. OnSetHeader( header,value )
  43. End
  44. Method Send( text:String="" )
  45. OnSend( text )
  46. End
  47. Method Cancel()
  48. OnCancel()
  49. End
  50. Protected
  51. Field _readyState:ReadyState
  52. Field _timeout:Float=60.0
  53. Field _response:String
  54. Field _status:Int=-1
  55. Field _req:String
  56. Field _url:String
  57. Method New()
  58. _readyState=ReadyState.Unsent
  59. _timeout=10
  60. _status=-1
  61. End
  62. Method OnOpen( req:String,url:String ) Virtual
  63. _req=req
  64. _url=url
  65. SetReadyState( ReadyState.Opened )
  66. End
  67. Method OnSetHeader( header:String,value:String ) Virtual
  68. End
  69. Method OnSend( text:String ) Abstract
  70. Method OnCancel() Virtual
  71. End
  72. Method SetReadyState( readyState:ReadyState )
  73. If readyState=_readyState Return
  74. _readyState=readyState
  75. ReadyStateChanged()
  76. End
  77. End