PhantomJS - Métodos de Módulo de Servidor Web
Neste capítulo, discutiremos sobre os vários métodos do Módulo Servidor Web do PhantomJS.
Fechar
o close método é usado para fechar o servidor web.
Sintaxe
Sua sintaxe é a seguinte -
var server = require('webserver').create();
server.close();
Exemplo
O exemplo a seguir mostra como você pode usar o close método.
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);
O programa acima gera o seguinte output.
server started - http://localhost:8080
8080
Aqui, nós consolamos server.portapós fechar o servidor. Portanto, ele não responderá, pois o servidor web já está fechado.
ouço
o server.listen método usa a função de porta e retorno de chamada com dois argumentos, que são - Request Object e Response Object.
o Request Object contém as seguintes propriedades -
Method - Isso define o método GET / POST.
URL - Isso exibe o URL solicitado.
httpVersion - Isso exibe a versão http real.
Headers - Isso exibe todos os cabeçalhos com pares de valores-chave.
Post - Solicitação aplicável apenas para o método de postagem.
postRaw - Se o cabeçalho Content-Type for definido como 'application / x-www-formurlencoded', o conteúdo original da postagem será armazenado nesta propriedade extra (postRaw) e, em seguida, essa postagem será atualizada automaticamente com uma versão decodificada por URL dos dados.
o Response Object contém as seguintes propriedades -
Headers- Possui todos os cabeçalhos HTTP como pares de valor-chave. Deve ser definido antes de chamar write pela primeira vez.
SetHeader - Isso define um cabeçalho específico.
Header (name) - Retorna o valor do cabeçalho fornecido.
StatusCode - Define o código de status HTTP retornado.
SetEncoding (encoding)- É usado para converter dados fornecidos para write (). Por padrão, os dados serão convertidos em UTF-8. Indique "binário" se os dados forem uma string binária. Não é necessário se os dados forem um buffer (por exemplo, de page.renderBuffer).
Write (data)- Envia dados para o corpo da resposta. Pode ser chamado várias vezes.
WriteHead (statusCode, headers)- Envia um cabeçalho de resposta ao pedido. O código de status é um código de status HTTP de 3 dígitos (por exemplo, 404). Os últimos argumentos e cabeçalhos são os cabeçalhos de resposta.
Close - Fecha a conexão http.
CloseGracefully - É semelhante a close (), mas garante que os cabeçalhos de resposta foram enviados primeiro.
Sintaxe
Sua sintaxe é a seguinte -
var server = require('webserver').create();
var listening = server.listen(8080, function (request, response) {}
Exemplo
Vamos dar um exemplo para entender como o listen método funciona.
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();
});
O programa acima gera o seguinte 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>