PhantomJS - Phương thức mô-đun máy chủ web
Trong chương này, chúng ta sẽ thảo luận về các phương pháp khác nhau của Mô-đun Máy chủ Web của PhantomJS.
đóng
Các close được sử dụng để đóng máy chủ web.
Cú pháp
Cú pháp của nó như sau:
var server = require('webserver').create();
server.close();
Thí dụ
Ví dụ sau đây cho thấy cách bạn có thể sử dụng close phương pháp.
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);
Chương trình trên tạo ra như sau output.
server started - http://localhost:8080
8080
Đây, chúng tôi đã an ủi server.portsau khi đóng máy chủ. Do đó, nó sẽ không phản hồi, vì máy chủ web đã bị đóng.
nghe
Các server.listen phương thức nhận cổng và hàm gọi lại với hai đối số là: Request Object và Response Object.
Các Request Object chứa các thuộc tính sau:
Method - Điều này xác định phương thức GET / POST.
URL - Điều này hiển thị URL được yêu cầu.
httpVersion - Điều này hiển thị phiên bản http thực tế.
Headers - Điều này hiển thị tất cả các tiêu đề với các cặp giá trị chính.
Post - Nội dung yêu cầu chỉ áp dụng cho phương thức đăng bài.
postRaw - Nếu tiêu đề Loại nội dung được đặt thành 'application / x-www-formurlencoded', nội dung gốc của bài đăng sẽ được lưu trữ trong thuộc tính bổ sung này (postRaw) và sau đó bài đăng đó sẽ được cập nhật tự động với phiên bản được giải mã bằng URL của dữ liệu.
Các Response Object chứa các thuộc tính sau:
Headers- Có tất cả các tiêu đề HTTP dưới dạng các cặp khóa-giá trị. Nó phải được đặt trước khi gọi ghi lần đầu tiên.
SetHeader - Điều này đặt một tiêu đề cụ thể.
Header (name) - Nó trả về giá trị của tiêu đề đã cho.
StatusCode - Nó đặt mã trạng thái HTTP trả về.
SetEncoding (encoding)- Điều này được sử dụng để chuyển đổi dữ liệu được đưa ra để write (). Theo mặc định, dữ liệu sẽ được chuyển đổi thành UTF-8. Cho biết "nhị phân" nếu dữ liệu là một chuỗi nhị phân. Không bắt buộc nếu dữ liệu là Bộ đệm (ví dụ: từ page.renderBuffer).
Write (data)- Nó gửi dữ liệu cho cơ quan phản hồi. Có thể gọi nhiều lần.
WriteHead (statusCode, headers)- Nó gửi một tiêu đề phản hồi cho yêu cầu. Mã trạng thái là mã trạng thái HTTP 3 chữ số (ví dụ: 404). Các đối số và tiêu đề cuối cùng là tiêu đề phản hồi.
Close - Nó đóng kết nối http.
CloseGracefully - Nó tương tự như close (), nhưng nó đảm bảo các tiêu đề phản hồi đã được gửi trước.
Cú pháp
Cú pháp của nó như sau:
var server = require('webserver').create();
var listening = server.listen(8080, function (request, response) {}
Thí dụ
Hãy để chúng tôi lấy một ví dụ để hiểu cách listen phương pháp hoạt động.
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();
});
Chương trình trên tạo ra như sau 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>