PhantomJS - Methoden des Webservermoduls

In diesem Kapitel werden die verschiedenen Methoden des Webservermoduls von PhantomJS erläutert.

schließen

Das close Methode wird verwendet, um den Webserver zu schließen.

Syntax

Die Syntax lautet wie folgt:

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

Beispiel

Das folgende Beispiel zeigt, wie Sie das verwenden können close Methode.

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);

Das obige Programm generiert Folgendes output.

server started - http://localhost:8080 
8080

Hier haben wir getröstet server.portnach dem Schließen des Servers. Daher wird es nicht antworten, da der Webserver bereits geschlossen ist.

Hör mal zu

Das server.listen Die Methode verwendet die Port- und Rückruffunktion mit zwei Argumenten: Request Object und Response Object.

Das Request Object enthält die folgenden Eigenschaften -

  • Method - Dies definiert die Methode GET / POST.

  • URL - Dies zeigt die angeforderte URL an.

  • httpVersion - Hier wird die aktuelle http-Version angezeigt.

  • Headers - Hier werden alle Header mit Schlüsselwertpaaren angezeigt.

  • Post - Antragsstelle gilt nur für die Post-Methode.

  • postRaw - Wenn der Content-Type-Header auf 'application / x-www-formurlencoded' gesetzt ist, wird der ursprüngliche Inhalt des Beitrags in dieser zusätzlichen Eigenschaft (postRaw) gespeichert und dieser Beitrag wird automatisch mit einer URL-decodierten Version aktualisiert der Daten.

Das Response Object enthält die folgenden Eigenschaften -

  • Headers- Hat alle HTTP-Header als Schlüssel-Wert-Paare. Es sollte vor dem ersten Aufruf von write festgelegt werden.

  • SetHeader - Hiermit wird ein bestimmter Header festgelegt.

  • Header (name) - Es gibt den Wert des angegebenen Headers zurück.

  • StatusCode - Legt den zurückgegebenen HTTP-Statuscode fest.

  • SetEncoding (encoding)- Dies wird verwendet, um Daten zu konvertieren, die an write () übergeben wurden. Standardmäßig werden Daten in UTF-8 konvertiert. Geben Sie "binär" an, wenn Daten eine binäre Zeichenfolge sind. Nicht erforderlich, wenn Daten ein Puffer sind (z. B. aus page.renderBuffer).

  • Write (data)- Es sendet Daten für den Antworttext. Kann mehrfach aufgerufen werden.

  • WriteHead (statusCode, headers)- Es sendet einen Antwortheader an die Anfrage. Der Statuscode ist ein dreistelliger HTTP-Statuscode (z. B. 404). Die letzten Argumente und Header sind die Antwortheader.

  • Close - Es schließt die http-Verbindung.

  • CloseGracefully - Es ähnelt close (), stellt jedoch sicher, dass die Antwortheader zuerst gesendet wurden.

Syntax

Die Syntax lautet wie folgt:

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

Beispiel

Nehmen wir ein Beispiel, um zu verstehen, wie die listen Methode funktioniert.

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(); 
});

Das obige Programm generiert Folgendes 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>