PhantomJS - методы модуля веб-сервера

В этой главе мы обсудим различные методы модуля веб-сервера PhantomJS.

Закрыть

В close используется для закрытия веб-сервера.

Синтаксис

Его синтаксис следующий -

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

пример

В следующем примере показано, как можно использовать close метод.

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

Вышеупомянутая программа генерирует следующие output.

server started - http://localhost:8080 
8080

Здесь мы утешили server.portпосле закрытия сервера. Следовательно, он не ответит, поскольку веб-сервер уже закрыт.

Слушать

В server.listen Метод принимает порт и функцию обратного вызова с двумя аргументами, которые: Request Object и Response Object.

В Request Object содержит следующие свойства -

  • Method - Это определяет метод GET / POST.

  • URL - Отображает запрошенный URL.

  • httpVersion - Здесь отображается фактическая версия http.

  • Headers - Отображаются все заголовки с парами ключ-значение.

  • Post - Тело запроса применимо только для метода post.

  • postRaw - Если для заголовка Content-Type установлено значение 'application / x-www-formurlencoded', исходное содержимое сообщения будет сохранено в этом дополнительном свойстве (postRaw), а затем этот пост будет автоматически обновлен версией с декодированием URL. данных.

В Response Object содержит следующие свойства -

  • Headers- Имеет все заголовки HTTP в виде пар "ключ-значение". Его следует установить перед первым вызовом записи.

  • SetHeader - Устанавливает определенный заголовок.

  • Header (name) - Возвращает значение данного заголовка.

  • StatusCode - Устанавливает возвращаемый код статуса HTTP.

  • SetEncoding (encoding)- Используется для преобразования данных, переданных в write (). По умолчанию данные будут преобразованы в UTF-8. Укажите "двоичный", если данные представляют собой двоичную строку. Не требуется, если данные являются буфером (например, из page.renderBuffer).

  • Write (data)- Отправляет данные для тела ответа. Может вызываться несколько раз.

  • WriteHead (statusCode, headers)- Отправляет заголовок ответа на запрос. Код состояния представляет собой трехзначный код состояния HTTP (например, 404). Последние аргументы и заголовки - это заголовки ответа.

  • Close - Он закрывает http-соединение.

  • CloseGracefully - Он похож на close (), но проверяет, что заголовки ответа были отправлены первыми.

Синтаксис

Его синтаксис следующий -

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

пример

Давайте рассмотрим пример, чтобы понять, как listen метод работает.

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

Вышеупомянутая программа генерирует следующие 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>