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>