server.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. var page = require('webpage').create();
  3. var server = require('webserver').create();
  4. var system = require('system');
  5. var host, port;
  6. if (system.args.length !== 2) {
  7. console.log('Usage: server.js <some port>');
  8. phantom.exit(1);
  9. } else {
  10. port = system.args[1];
  11. var listening = server.listen(port, function (request, response) {
  12. console.log("GOT HTTP REQUEST");
  13. console.log(JSON.stringify(request, null, 4));
  14. // we set the headers here
  15. response.statusCode = 200;
  16. response.headers = {"Cache": "no-cache", "Content-Type": "text/html"};
  17. // this is also possible:
  18. response.setHeader("foo", "bar");
  19. // now we write the body
  20. // note: the headers above will now be sent implictly
  21. response.write("<html><head><title>YES!</title></head>");
  22. // note: writeBody can be called multiple times
  23. response.write("<body><p>pretty cool :)</body></html>");
  24. response.close();
  25. });
  26. if (!listening) {
  27. console.log("could not create web server listening on port " + port);
  28. phantom.exit();
  29. }
  30. var url = "http://localhost:" + port + "/foo/bar.php?asdf=true";
  31. console.log("SENDING REQUEST TO:");
  32. console.log(url);
  33. page.open(url, function (status) {
  34. if (status !== 'success') {
  35. console.log('FAIL to load the address');
  36. } else {
  37. console.log("GOT REPLY FROM SERVER:");
  38. console.log(page.content);
  39. }
  40. phantom.exit();
  41. });
  42. }