PhantomJS - Métodos del módulo de servidor web

En este capítulo, analizaremos los diversos métodos del módulo de servidor web de PhantomJS.

cerca

los close El método se utiliza para cerrar el servidor web.

Sintaxis

Su sintaxis es la siguiente:

var server = require('webserver').create();
server.close();

Ejemplo

El siguiente ejemplo muestra cómo puede utilizar el close método.

var webserver = require('webserver');
var server = webserver.create();
var service = server.listen(8080,function(request,response){
});

if(service) console.log("server started - http://localhost:" + server.port);
console.log(server.port);
server.close();
console.log(server.port);

El programa anterior genera lo siguiente output.

server started - http://localhost:8080 
8080

Aquí, nos hemos consolado server.portdespués de cerrar el servidor. Por lo tanto, no responderá, ya que el servidor web ya está cerrado.

escucha

los server.listen El método toma el puerto y la función de devolución de llamada con dos argumentos, que son: Request Object y Response Object.

los Request Object contiene las siguientes propiedades:

  • Method - Esto define el método GET / POST.

  • URL - Esto muestra la URL solicitada.

  • httpVersion - Esto muestra la versión http real.

  • Headers - Esto muestra todos los encabezados con pares clave-valor.

  • Post - Cuerpo de solicitud aplicable solo para el método de publicación.

  • postRaw - Si el encabezado Content-Type se establece en 'application / x-www-formurlencoded', el contenido original de la publicación se almacenará en esta propiedad adicional (postRaw) y luego esa publicación se actualizará automáticamente con una versión decodificada por URL de los datos.

los Response Object contiene las siguientes propiedades:

  • Headers- Tiene todos los encabezados HTTP como pares clave-valor. Debe configurarse antes de llamar a write por primera vez.

  • SetHeader - Esto establece un encabezado específico.

  • Header (name) - Devuelve el valor del encabezado dado.

  • StatusCode - Establece el código de estado HTTP devuelto.

  • SetEncoding (encoding)- Esto se usa para convertir los datos dados a write (). De forma predeterminada, los datos se convertirán a UTF-8. Indique "binario" si los datos son una cadena binaria. No es necesario si los datos son un búfer (por ejemplo, de page.renderBuffer).

  • Write (data)- Envía datos para el cuerpo de respuesta. Se puede llamar varias veces.

  • WriteHead (statusCode, headers)- Envía un encabezado de respuesta a la solicitud. El código de estado es un código de estado HTTP de 3 dígitos (por ejemplo, 404). Los últimos argumentos y encabezados son los encabezados de respuesta.

  • Close - Cierra la conexión http.

  • CloseGracefully - Es similar a close (), pero asegura que los encabezados de respuesta se hayan enviado primero.

Sintaxis

Su sintaxis es la siguiente:

var server = require('webserver').create(); 
var listening = server.listen(8080, function (request, response) {}

Ejemplo

Tomemos un ejemplo para comprender cómo listen el método funciona.

var page = require('webpage').create(); 
var server = require('webserver').create(); 
var port = 8080; 
var listening = server.listen(8080, function (request, response) { 
   console.log("GOT HTTP REQUEST"); 
   console.log(JSON.stringify(request, null, 4)); 
   
   // we set the headers here 
   response.statusCode = 200; 
   response.headers = {"Cache": "no-cache", "Content-Type": "text/html"};  
 
   // the headers above will now be sent implictly 
   // now we write the body 
   response.write("<html><head><title>Welcone to Phantomjs</title></head>"); 
   response.write("<body><p>Hello World</p></body></html>"); 
   response.close(); 
}); 

if (!listening) { 
   console.log("could not create web server listening on port " + port); 
   phantom.exit(); 
} 

var url = "http://localhost:" + port + "/foo/response.php"; 
console.log("sending request to :" +url); 
page.open(url, function (status) { 
   if (status !== 'success') { 
      console.log('page not opening'); 
   } else { 
      console.log("Getting response from the server:"); 
      console.log(page.content); 
   } 
   
   phantom.exit(); 
});

El programa anterior genera lo siguiente output.

sending request to :http://localhost:8080/foo/response.php 
GOT HTTP REQUEST { 
   "headers": {
      "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
      "Accept-Encoding": "gzip, deflate", 
      "Accept-Language": "en-IN,*", 
      "Connection": "Keep-Alive", 
      "Host": "localhost:8080", 
      "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/538.1 
         (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1" 
   }, 
   "httpVersion": "1.1", 
   "method": "GET", 
   "url": "/foo/response.php" 
} 
Getting response from the server: 
<html><head><title>Welcone to Phantomjs</title></head><body><p>Hello World</p></body>
</html>