PhantomJS - Metody modułu serwera sieci Web
W tym rozdziale omówimy różne metody modułu serwera sieci Web PhantomJS.
blisko
Plik close metoda służy do zamykania serwera WWW.
Składnia
Jego składnia jest następująca -
var server = require('webserver').create();
server.close();
Przykład
Poniższy przykład pokazuje, jak można używać close metoda.
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);
Powyższy program generuje następujące dane output.
server started - http://localhost:8080
8080
Tutaj pocieszyliśmy server.portpo zamknięciu serwera. W związku z tym nie odpowie, ponieważ serwer WWW jest już zamknięty.
słuchać
Plik server.listen metoda przyjmuje port i funkcję zwrotną z dwoma argumentami, którymi są - Request Object i Response Object.
Plik Request Object zawiera następujące właściwości -
Method - Definiuje metodę GET / POST.
URL - Wyświetla żądany adres URL.
httpVersion - Wyświetla aktualną wersję http.
Headers - Spowoduje to wyświetlenie wszystkich nagłówków z parami klucz-wartość.
Post - Treść żądania dotycząca tylko metody wysyłania wiadomości.
postRaw - Jeśli nagłówek Content-Type jest ustawiony na „application / x-www-formurlencoded”, oryginalna treść posta zostanie zapisana w tej dodatkowej właściwości (postRaw), a następnie ten post zostanie automatycznie zaktualizowany za pomocą wersji zdekodowanej z adresu URL danych.
Plik Response Object zawiera następujące właściwości -
Headers- Zawiera wszystkie nagłówki HTTP jako pary klucz-wartość. Powinien być ustawiony przed pierwszym wywołaniem write.
SetHeader - Ustawia określony nagłówek.
Header (name) - Zwraca wartość podanego nagłówka.
StatusCode - Ustawia zwrócony kod stanu HTTP.
SetEncoding (encoding)- Służy do konwersji danych podanych do metody write (). Domyślnie dane zostaną przekonwertowane na UTF-8. Wskaż „binarny”, jeśli dane są ciągiem binarnym. Niewymagane, jeśli dane są buforem (np. Z page.renderBuffer).
Write (data)- Wysyła dane do treści odpowiedzi. Można wywołać wiele razy.
WriteHead (statusCode, headers)- Wysyła nagłówek odpowiedzi na żądanie. Kod statusu to 3-cyfrowy kod statusu HTTP (np. 404). Ostatnie argumenty i nagłówki to nagłówki odpowiedzi.
Close - Zamyka połączenie http.
CloseGracefully - Jest podobny do close (), ale zapewnia, że nagłówki odpowiedzi zostały wysłane jako pierwsze.
Składnia
Jego składnia jest następująca -
var server = require('webserver').create();
var listening = server.listen(8080, function (request, response) {}
Przykład
Weźmy przykład, aby zrozumieć, w jaki sposób listen metoda działa.
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();
});
Powyższy program generuje następujące dane 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>