httprequest_desktop.monkey2 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. Namespace httprequest
  2. Function Hello()
  3. End
  4. Class HttpRequest Extends HttpRequestBase
  5. Method New()
  6. End
  7. Protected
  8. Method OnSend( text:String ) Override
  9. Global id:=0
  10. id+=1
  11. #If __TARGET__="windows"
  12. _tmp=GetEnv( "TMP" )+"\mx2_wget-"+id+".txt"
  13. #Else
  14. _tmp="/tmp/mx2_wget-"+id+".txt"
  15. #endif
  16. 'WGET
  17. Local post_data:=_req="POST" ? " -post-data=~q"+text+"~q" Else ""
  18. Local cmd:="wget -q -T "+_timeout+" -O ~q"+_tmp+"~q --method="+_req+" --content-on-error"+post_data+" ~q"+_url+"~q"
  19. 'CURL
  20. ' Local cmd:="curl -s -m "+_timeout+" -o ~q"+_tmp+"~q ~q"+_url+"~q"
  21. _process=New Process
  22. _process.Finished=Lambda()
  23. If Not _process Return
  24. If _process.ExitCode=0
  25. _response=LoadString( _tmp )
  26. DeleteFile( _tmp )
  27. _status=200
  28. _process=Null
  29. SetReadyState( ReadyState.Done )
  30. Else
  31. DeleteFile( _tmp )
  32. _status=404
  33. _process=Null
  34. SetReadyState( ReadyState.Error )
  35. Endif
  36. End
  37. SetReadyState( ReadyState.Loading )
  38. _process.Start( cmd )
  39. End
  40. Method OnCancel() Override
  41. If Not _process Return
  42. DeleteFile( _tmp )
  43. _process.Terminate()
  44. _process=Null
  45. _status=-1
  46. SetReadyState( ReadyState.Error )
  47. End
  48. Private
  49. Field _process:Process
  50. Field _tmp:String
  51. End