2011/02/17

HTTPオブジェクトのCookieを保存しておいて次回実行時に読み込む

HTTPオブジェクトでCookieを扱う際、受取ったCookieをファイルに保存しておいて、次にスクリプトを実行したときに読み込んで利用したい場合があるかも知れません。
このような場合は、HTTPオブジェクトのコンストラクタの引数に以下のようなオプションオブジェクトを指定してください。

try{
    var http=new (require('HTTP').HTTP)({
        cookies:Main.scriptDirectory.file('cookies.json'),
        saveCookies:true
    });
    //何らかの処理
}finally{
 free(http);
}

オプションオブジェクトの「cookies」メンバにファイルパスやFileオブジェクトを指定すると、そのファイルからCookieが読み込まれます。この時、ファイルが存在しなくてもエラーになったりはせず、単に何も読み込まずに初期化されます。
また、cookiesに加えて「saveCookies:true」を指定すれば、オブジェクトをfree()で解放する際に、cookiesで指定したファイルにCookieが保存されます。
ファイルから読み込まずに保存だけを行いたい場合は、cookiesを指定せずにsaveCookiesにファイルパスやFileオブジェクトを指定します。

このCookie保存機能では、ブラウザを閉じると破棄されてしまうセッションCookieも保存できます。これにより、ブラウザをずっと開いたままにしているように装うことも可能となります。
オプションオブジェクトに「discardSessionCookies:true」を指定することで、セッションCookieは保存せず破棄させることも可能です。

0 件のコメント:

コメントを投稿