Учебники

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

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

server started - http://localhost:8080 
8080

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

Слушать

Метод server.listen принимает функцию port и callback с двумя аргументами, а именно: объект запроса и объект ответа .

Объект запроса содержит следующие свойства:

  • Метод — определяет метод GET / POST.

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

  • httpVersion — отображает актуальную версию http.

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

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

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

Метод — определяет метод GET / POST.

URL — отображает запрошенный URL.

httpVersion — отображает актуальную версию http.

Заголовки — отображает все заголовки с парами ключ-значение.

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

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

Объект ответа содержит следующие свойства:

  • Заголовки — содержит все заголовки HTTP в виде пар ключ-значение. Это должно быть установлено перед вызовом write в первый раз.

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

  • Заголовок (имя) — возвращает значение данного заголовка.

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

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

  • Запись (данные) — отправляет данные для тела ответа. Можно вызывать несколько раз.

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

  • Закрыть — закрывает http соединение.

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

Заголовки — содержит все заголовки HTTP в виде пар ключ-значение. Это должно быть установлено перед вызовом write в первый раз.

SetHeader — это устанавливает определенный заголовок.

Заголовок (имя) — возвращает значение данного заголовка.

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

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

Запись (данные) — отправляет данные для тела ответа. Можно вызывать несколько раз.

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

Закрыть — закрывает 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(); 
});

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