httprequest_desktop.monkey2 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. _tmp=GetEnv( "TMP" )+"\wget-"+id+".txt"
  12. #if __TARGET__="windows"
  13. Local post_data:=_req="POST" ? " -post-data=~q"+text+"~q" Else ""
  14. Local cmd:="wget -q -T "+_timeout+" -O ~q"+_tmp+"~q --method="+_req+post_data+" ~q"+_url+"~q"
  15. #else
  16. Local cmd:="curl -s -m "+timeout+" -o ~q"+_tmp+"~q ~q"+url+"~q"
  17. #endif
  18. _process=New Process
  19. _process.Finished=Lambda()
  20. If Not _process Return
  21. If _process.ExitCode=0
  22. _response=LoadString( _tmp )
  23. DeleteFile( _tmp )
  24. _status=200
  25. _process=Null
  26. SetReadyState( ReadyState.Done )
  27. Else
  28. DeleteFile( _tmp )
  29. _status=404
  30. _process=Null
  31. SetReadyState( ReadyState.Error )
  32. Endif
  33. End
  34. SetReadyState( ReadyState.Loading )
  35. _process.Start( cmd )
  36. End
  37. Method OnCancel() Override
  38. If Not _process Return
  39. DeleteFile( _tmp )
  40. _process.Terminate()
  41. _process=Null
  42. _status=-1
  43. SetReadyState( ReadyState.Error )
  44. End
  45. Private
  46. Field _process:Process
  47. Field _tmp:String
  48. End