Python for Android

HTTP サーバ

このエントリーをはてなブックマークに追加
最終更新日 2012-12-02

Python for Android の SimpleHTTPServer モジュールと SocketServer モジュールを利用すると、 Android 上で簡単な HTTP サーバを作成することができます。

はじめに、HTTP サーバからアクセスするための HTML ファイルを作成します。 [Scripts]画面でメニューから[Add]を実行し、[Folder]を実行して web という名前のフォルダを作成します。 web フォルダの中には次のような index.html ファイルを作成します。

<html>
<head></head>
<body>
<h1>Scripting Layer for Android</h1>
</body>
</html>

次に示すのは、/mnt/sdcard/sl4a/scripts/web をドキュメントルートとする HTTP サーバの例です。

import os
import SimpleHTTPServer
import SocketServer
os.chdir("/mnt/sdcard/sl4a/scripts/web")
handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", 8000), handler)
httpd.serve_forever()

SimpleHTTPRequestHandler クラスはカレントディレクトリをドキュメントルートとするシンプルな HTTP リクエストハンドラクラスです。 今回の例では chdir() を呼び出してカレントディレクトリを /mnt/sdcard/sl4a/scripts/web に設定します。 サーバクラスである TCPServer クラスの第1引数はサーバのアドレスとポート番号のタプルで、第2引数はリクエストハンドラクラス名です。 serve_forever() を呼び出すとサーバが起動してリクエストの処理を開始します。

このスクリプトを実行した状態で Android の Web ブラウザを起動し、http://localhost:8000/ にアクセスすると、作成した index.html が表示されます。

Wi-Fi が有効な環境であれば他の端末からアクセスすることも可能です。