なんとか完成

締め切りギリでFlashLiteのデモ2つが完成した。
2つ目のデモは入力に対してサーバで計算して値を表示するというもので、
ラジオボタンとテキスト入力、あとサーバとの通信を実装した。


サーバとの通信は、loadVariablesという関数を使用する。通信は普通のHTTP(POSTとGET)なので、
サーブレットでgetParameter()で値を取得できるし、戻り値もkey=valueの形式に
しておけばFlashで受け取れるので、それほど難しいわけではない。
が、エミュレーターでは問題なく通信出来ていたのに、実機で試してみるとどうしても
「通信中に切断されました」というメッセージが出て通信が終わってしまう。


いろいろ試してみたが、結局ServletResponseから取得したPrintWriterのcloseメソッド
呼ばないようにするとその現象が回避できたので、とりあえずはその実装でお茶を
濁すことにした。サーバはTomcat5.5を使っているのだが、もしかしたらそれの絡みも
あるのかもしれないので、今度時間があるときに他のサーバでも試してみようと思う。


ちなみに以下が手持ちの携帯のリクエストヘッダー。切断されてしまう現象の解明の為に
ヘッダーをログ出力したので、そこから採取。

accept-encoding:identity
accept-language:ja-JP;q=1.0
user-agent:SoftBank/1.0/815SH/SHJ002 Flash/Flash-Lite/2.0
accept-charset:utf-8,euc-jp,iso-10646-ucs-2,iso-2022-jp,iso-8859-1,shift_jis,us-ascii,utf-16
Cache-Control:no-cache
accept:*/*
referer:http://www.example.com
host:www.example.com
pragma:no-cache
x-jphone-uid:xxxxxxxxxxx
x-s-display-info:468*540/39*22/TB
x-jphone-display:480*640
x-jphone-msname:815SH
x-jphone-region:44020
x-jphone-color:C262144
x-jphone-smaf:128/pcm/grf/rs
Max-Forwards:10

x-jphone-uidというので、固体を特定できるようだ。あとx-jphone-regionというのは地域情報らしいが、
ネットで拾った仕様書http://www2.developers.softbankmobile.co.jp/dp/tool_dl/download.php?docid=119)を見る限り、
44020は日本国内という意味しかないようなので、都道府県とかはわからないようだ。
面白いのはソフトバンク携帯なのにまだjphoneのヘッダーを利用している所か。


まあなんにせよ、ともかく作り終えられて終わってよかった。久々に冷や汗をかいた1週間だった。