perl LWPを使ってcookie必須のページへのPOSTアクセス

うちで主に携帯向けとして提供しているゲームコンテンツのゲートウェイサービスは、内部でHTTP::Liteを使用して、オフィシャルのコンテンツを取りに行っている。

いままでは、それで問題なく利用できていたのだが、今回の動作状況見直しの際に、1点問題となる場面が見つかった。

それは、以下の様に同じ名前のパラメータで値が異なるものを送らなければならないことがある、ということ。

<input type="text" name="param" value="value1">
<input type="text" name="param" value="value2">

HTTP::Liteは、POSTアクセス時のコンテンツのペイロードに連想配列を使うため、同じ名前のものを複数送ることができない。

そんなわけで、LWPを使うように仕様変更を試みた。


HTTP::Liteを使用するもの

use HTTP::Lite;
$http = new HTTP::Lite;
$url="http://~";
$http->add_req_header("Cookie", "cookiename=$cookie");
%vars = ( "param" =>; "value1");
$http->prepare_post(\%vars);
$req = $http->request("$url")
    or $flagerr=1;
$contents=$http->body;

LWP使用に変更したもの

use LWP::UserAgent;
use HTTP::Headers;
use HTTP::Request;
$lwpua = LWP::UserAgent->new;
$url="http://~";
$lwpreq = HTTP::Request->new(POST => $url);
$lwpreq->content_type('application/x-www-form-urlencoded');
$lwpreq->header("Cookie"=>"cookiename=$cookie");
$lwpreq->content("param=value1&param=value2");
$lwpres= $lwpua->request($lwpreq);
$contents=$lwpres->as_string;

細かい点はいくつかあるものの、こんな感じで移行はできた。

失敗した点

最初「$lwpreq = HTTP::Request->new(POST => $url);」を「$lwpreq = HTTP::Request->new(POST => ‘$url’);」としていた。
この場合、「400 URL must be absolute」というエラーメッセージが出力されていた。
$urlにつけていたシングルクォーテーションを外したところ、正常動作した。

参考にしたLWP cookbookのサンプルは固定URLであるので、シングルクォーテーションで良いが、変数を使う場合にシングルクォーテーションを使うと駄目、という基本を忘れていたために食らいました。

もう1点、サーバに対して、Cookieの値を送る方法がよくわからなかった。
HTTP::Liteの時の例とかを考え、headerにCookieという名前で値を追加すればいい、と思い当たったので、それでやってみたところ、期待通りに動作した。

JUSTインターネットセキュリティのパターンファイルが更新されない

先日インストールしたJUSTインターネットセキュリティ
予備機と化しているノートパソコンにインストールしてみただけなので、インストール以後、全然起動していませんでした。

で、しばらくぶりに起動してみると・・・起動後30分経過しても、まだパターンファイル未更新状態のまま。

で、40分目。
非常に邪魔な広告が登場。
1024×600の画面だと↓な感じで表示されます。

そんなことがあったのが2月26日。(インストールは2月16日)
今日、2月28日、2日ぶりに起動してみた。
すると今度は5分程度で更新された。

いったい、どういう違いで、こんな時間差が生まれるのか、不明。

しかし、セキュリティセンターは「最新の状態ではありません」のまま。

手動でパターンファイルを更新してみても、そのまま。
またも再起動しないと警告が消えない、という状態。

だいじょぶか、これ。

Rstream A1類似機種海外のフォーラム便り 2012/02/23版

久々に海外フォーラムからのネタによる更新

というか、Bonston Maniaの更新がえらく中途半端なのでそれを補完するような感じ

[DEV ONLY][WIP][ICS][KERNEL] AOSP Ice Cream Sandwich for Commtiva Z71 variant
Rstream A1で動くICSの配布の大元。
といっても、書かれているスペック上だけでも通信機能全滅というばかりではなく、
Rstream A1に入れるとタッチパネルの動作も微妙と、現状ではとても使い物にならない。
まさにデモンストレーションonly。

・Droidsans.com: [ROM CM7.2] ROM CM7.2 RC0 “KANG” 2.3.7+kernel PlayOSS v6.3 [Build 18-02-2012]
タイ語のフォーラムDroidsans.comが公開元のようだ。
CynanogenMod 7.2RC0の2012/02/18付けソースを元に作成しているらしい。
KANGについては後述。
kernel PlayOSSについての実体がよくわからない。
たぶん、タイのPlayOSSなんだろうけど、kernelを公開している形跡が無い。

・PlayOSS: [Dev Guide] Build Android ICS 4.0 on Ubuntu
で、そのPlayOSSにあるタイ語の記事から1例。
タイで販売しているWellcoM A88向けに手順を解説している。
Android 2.3のコンパイル手順も別途あるが、バイナリを配布している様子がない?
(それとも見落とし?)

・Android Devil: [ROM][MOD]OptimusXperia 2.3.7 for Commtiva z71, Optimus Boston and other clones
Xperia2011年モデルの見た目をほとんど持ってきました!という感じのカスタムROM。
なので標準のランチャーはXperia ARC Launcher。
配布形式がupdate.zipではなく、ClockworkModRecoveryのBackupでバックアップしたディレクトリをzipしたものになっている。
このため、microSD上の/clockworkmod/backup以下に解凍して、ClockworkModRecoveryの「Restore」にてそのディレクトリを指定してリストアを実施する必要がある。(実施すると、いままでの設定が初期化されます)

Horizon 2.3.7
ここのフォーラムはログインしないと内容が見れないので注意。
Cyanogenmod 7 2.3.7 aPT をベースに改造しているカスタムROM。
こっちは、Xperia ARC Launcherだけを持ってきてる。

・おまけ、KANGとは?
Android Open Kang Projectらしい。(旧サイト)
現在は、Android 4.0.3ベースに開発している。
ただ、「Kang」とは何か解説は見当たらない。
Githubあり

MT6573搭載のICS Android携帯 Amaze 4G G22

MTK MT6573でもAndroid 4.0/ICSが動く?

いままでMTKチップのAndroid 4.0/ICS対応はMT6575からだと思っていました。
が、毎度おなじみmicgidiにてThe knock off HTC Amaze 4G G22 smart phoneなんて記事を発見。

ぱくり系Android携帯でおなじみのHTC風(通称HTC G22)をした普通の仕様だなぁと思ったところ、異常な点を発見。

CPU MTK MT6573
RAM 512MB
ROM 512MB
液晶 4.03インチ、静電式、854×480、5点マルチタッチ
Bluetooth/Wifi/GPS/カメラ(前面/背面)
もちろん、Dual-SIM

そして、「Android 4.0.5 OS」

そう、Android 4.0/ICS、だと謳っています。

え?と詳細を確認。

micdigiの画像にあるhttp://hkbbt.taobao.com/にて商品ページを発見。
香港Amaze 4G G22双卡双待WCDMA双核3G智能手机+高清屏+Beats音效


確かにAndroid 4.0.5と表示されている。
これがほんとだとすると、面白い。

また、以下の記述を見ると、Dual-SIMで、2枚ともWCDMAにしても動くような感じである。

双卡双待:支持G+G\G+W\W+G\W+W四种待机模式设计,真双卡双待双3G功能,内置一个两个SIM卡插槽,可单独使用一张GSM卡或者联通WCDMA 3G卡待机通话,也可同时使用一张GSM SIM卡和一张WCDMA SIM卡待机通话,还可以支持两张WCDMA 3G卡同时待机通话,支持中国移动和中国联通的普通GSM网络,也支持中国联通的WCDMA 3G网络,GSM网络支持EDGE准3G上网,WCDMA网络支持高速3G上网,WCDMA 3G上网固定为SIM卡1

サポート掲示板としてHTC Amaze 4G G22论坛というページが紹介されている。
書き換えができるのであれば、なかなかおもしろそうな感じである。

Xperiaシリーズのバッテリーメモ ver3

Sony Ericsson のAndroid携帯で採用しているバッテリー型番についてのメモ書き ver3
(ver1 , ver2)

BST-41 ( ドコモバッテリー型番 SO04 )
Xperia X10(X10i/X10a, SO-01B) BST-41 1500mAh
Xperia Play(R800a/R800at/R800i/R800x) BST-41 1500mAh

BA750 ( ドコモバッテリー型番SO05 )
Xperia Arc(LT15i/LT15a, SO-01C) BA750 1500mAh
Xperia Acro(SO-02C, IS11S) BA750 1500mAh
Xperia arc S(Ayame,LT18i/LT18a) 1500mAh

BA700 (ドコモバッテリー型番 不明SO06 )
Xperia Pro(MT16i/MK16a) BA700 1500mAh
Xperia Neo(MT15i/MK15a) BA700 1500mAh
Xperia ray(ST18i/ST18a, SO-03C) BA700 1500mAh
Xperia Neo V(MT11i/MT11a) BA700 1500mAh
Xperia SX SO-04D/Komachi/MT28 BA700 1500mAh

・BA600
Xperia U(ST25i/ST25a/Kumquat) BA600 1290mAh? 1320mAh?

・BA900
Xperia GX SO-04D/LT29i/Hayabusa BA900 1700mAh

EP500
Xperia Mini(ST15i/ST15a) EP500 1200mAh
Xperia Mini Pro(SK17i/SK17) EP500 1200mAh
Xperia X8(E15i/E15a) EP500 1200mAh
Xperia W8(E16i) EP500 1200mAh
Sony Ericsson Live with Walkman(WT19i/WT19a) EP500 1200mAh
Sony Ericsson Mini S51SE(イーモバイルモデル) EP500 1200mAh
Xperia active(ST17i/ST17a) EP500 1200mAh

BST-38
Xperia X10 mini pro(U20i/U20a) BST-38 970mAh
BST-38のスマートフォンでの採用例は他になし

・専用品採用
Xperia X10 mini(E10i/E10a) 専用品(P/N:1227-8101) Li-Polymer Battery, 950mAh 3.7V 3.6Wh
Xperia S/Xperia NX(SO-02D),LT26i/LT26a/Nozomi 取り外し不可
Xperia P/LT22i/Nypon 取り外し不可? 1305mAh
Xperia acro HD SO-03D / IS12S
Xperia ion LT28i / LT28at Aoba 1900mAh
Xperia sola MT27i Pepper 1320mAh
Xperia acro S/LT26w Hikari
Xperia go/ST27i Xperia advance/ST27a Lotus(Active後継)

・新機種(バッテリー未確定)
Xperia Tipo, ST21i/ST21a Tapioca バッテリーがBA-700らしい 1500mAh?
Xperia Tipo Dual, ST21i2(ST212) Tapioca_DS Dual SIM対応 1500mAh?
Xperia Miro ,ST23i/ST23a,Mesona Tapioca DS 1500mAh?

・噂の機種
Xperia Duo, LT18 Ayameだという話もある
SK19i キーボード付きRay?キャンセルされたらしい
SK10i/SK10a という謎の機種
WT23i Walkman
ST26i
ATLAS
AFFM
OLIVE
Mint,LT30i/LT30m

BST-41, BA750, EP500, BA700については、バッテリー自体のサイズを拡大化している大容量バッテリーの存在を確認。具体的にはMUGEN POWERのBatteryDoor付きの製品とかです。

モバイルバージョンを終了