PhantomJS - Web Sunucusu Modül Yöntemleri
Bu bölümde, PhantomJS'nin Web Sunucusu Modülünün çeşitli yöntemlerini tartışacağız.
kapat
close yöntem web sunucusunu kapatmak için kullanılır.
Sözdizimi
Sözdizimi aşağıdaki gibidir -
var server = require('webserver').create();
server.close();
Misal
Aşağıdaki örnek, nasıl kullanabileceğinizi gösterir. close yöntem.
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);
Yukarıdaki program aşağıdakileri üretir output.
server started - http://localhost:8080
8080
Burada teselli ettik server.portsunucuyu kapattıktan sonra. Bu nedenle, web sunucusu zaten kapalı olduğundan yanıt vermeyecektir.
dinlemek
server.listen yöntem, bağlantı noktası ve geri arama işlevini iki bağımsız değişkenle alır, bunlar - Request Object ve Response Object.
Request Object aşağıdaki özellikleri içerir -
Method - Bu, GET / POST yöntemini tanımlar.
URL - Bu, istenen URL'yi görüntüler.
httpVersion - Bu, gerçek http sürümünü görüntüler.
Headers - Bu, anahtar-değer çiftlerine sahip tüm başlıkları görüntüler.
Post - Yalnızca gönderi yöntemi için geçerli gövde talep edin.
postRaw - Content-Type başlığı 'application / x-www-formurlencoded' olarak ayarlanmışsa, yayının orijinal içeriği bu ekstra özellikte (postRaw) depolanır ve ardından bu gönderi, URL kodu çözülmüş bir sürümle otomatik olarak güncellenir verilerin.
Response Object aşağıdaki özellikleri içerir -
Headers- Anahtar-değer çiftleri olarak tüm HTTP başlıklarına sahiptir. İlk kez write çağrılmadan önce ayarlanmalıdır.
SetHeader - Bu, belirli bir başlık belirler.
Header (name) - Verilen başlığın değerini döndürür.
StatusCode - Döndürülen HTTP durum kodunu ayarlar.
SetEncoding (encoding)- Bu, write () 'a verilen verileri dönüştürmek için kullanılır. Varsayılan olarak, veriler UTF-8'e dönüştürülür. Veriler ikili bir dizeyse "ikili" yi belirtin. Veriler bir Buffer ise gerekli değildir (örn. Page.renderBuffer'dan).
Write (data)- Müdahale kuruluşu için veri gönderir. Birden çok kez çağrılabilir.
WriteHead (statusCode, headers)- İsteğe bir yanıt başlığı gönderir. Durum kodu 3 basamaklı bir HTTP durum kodudur (örn. 404). Son argümanlar ve başlıklar yanıt başlıklarıdır.
Close - http bağlantısını kapatır.
CloseGracefully - close () 'ya benzer, ancak önce yanıt başlıklarının gönderilmesini sağlar.
Sözdizimi
Sözdizimi aşağıdaki gibidir -
var server = require('webserver').create();
var listening = server.listen(8080, function (request, response) {}
Misal
Nasıl olduğunu anlamak için bir örnek verelim listen yöntem işe yarar.
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();
});
Yukarıdaki program aşağıdakileri üretir 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>