Phantomjs-web-server-module-methods
提供:Dev Guides
PhantomJS-Webサーバーモジュールメソッド
この章では、PhantomJSのWebサーバーモジュールのさまざまなメソッドについて説明します。
閉じる
*close* メソッドは、Webサーバーを閉じるために使用されます。
構文
その構文は次のとおりです-
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* メソッドは、2つの引数を持つポートおよびコールバック関数を受け取ります。これは、 *Request Object* および *Response Object* です。
- リクエストオブジェクト*には、次のプロパティが含まれています-
- メソッド-これはメソッドGET/POSTを定義します。
- URL -要求されたURLを表示します。
- httpVersion -これは実際のhttpバージョンを表示します。
- ヘッダー-これは、キーと値のペアを持つすべてのヘッダーを表示します。
- Post -postメソッドにのみ適用可能なリクエストボディ。
- postRaw -Content-Typeヘッダーが 'application/x-www-formurlencoded’に設定されている場合、投稿の元のコンテンツはこの追加プロパティ(postRaw)に保存され、その投稿はURLで自動的に更新されますデータのデコードされたバージョン。
- レスポンスオブジェクト*には、次のプロパティが含まれています-
- Headers -キーと値のペアとしてすべてのHTTPヘッダーがあります。 初めてwriteを呼び出す前に設定する必要があります。
- SetHeader -これは特定のヘッダーを設定します。
- * Header(name)*-指定されたヘッダーの値を返します。
- StatusCode -返されたHTTPステータスコードを設定します。
- * SetEncoding(エンコード)*-これは、write()に渡されたデータを変換するために使用されます。 デフォルトでは、データはUTF-8に変換されます。 データがバイナリ文字列の場合、「バイナリ」を示します。 データがバッファの場合は不要です(例: page.renderBufferから)。
- * Write(data)*-応答本文のデータを送信します。 複数回呼び出すことができます。
- * WriteHead(statusCode、headers)*-応答ヘッダーを要求に送信します。 ステータスコードは3桁の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>