CGIでAmazon Web Services
http://d.hatena.ne.jp/taka_2/20060510#p2の続き。
前回はXML::DOMがうまく動かないのではまってましたが、今度はJcodeがうまく動かないということに。。
あきらめかけていたところ、
http://www.gac.jp/article/index.php?stats=question&category=12&id=16292&command=msg
のサイトを発見し、それまで試していたJcode2.04をやめて、Jcode0.88を試してみることに。
すると、無事にCGIで以下のことが可能になりました。
- CGI_LiteによるQUERY_STRINGの分解
- CGI_Liteによるurlencode (やってないけどurldecodeも可だと思う)
- HTTP::LiteによるAmazon Web Servicesへの問い合わせ (biglobeのサーバは外部への通信を許可していないらしく、不可能でした。代わりに使っているTOK2ではOKです。)
- JcodeによるXML<-->Sjisの双方向変換 (Jcode0.88だと、たまにutf8がasciiに判定されてしまうことがある?)
- XML::DOMによるDOMツリー操作
など。意外とCGIでも色々出来るものだと思いました。
なお、テスト用サイトは以下のアドレスでアクセスできます。
http://www33.tok2.com/home/taka2/index.cgi
で、検索ボックスに適当なキーワードを入れて検索すると、表形式で表示してくれます。
でも、TOK2は広告がすさまじいですね。。
ちなみにですが、使用しているPerlModuleは
で、PerlModuleとCGIの配置はこんな感じです。
. │ CGI_Lite.pm │ index.cgi │ Jcode.pm │ test.cgi │ ├─HTTP │ Lite.pm │ ├─Jcode │ │ Constants.pm │ │ H2Z.pm │ │ Tr.pm │ │ │ └─Unicode │ Constants.pm │ NoXS.pm │ └─XML │ DOM.pm │ Parser.pm │ RegExp.pm │ ├─DOM │ AttDef.pod │ AttlistDecl.pod │ Attr.pod │ CDATASection.pod │ CharacterData.pod │ Comment.pod │ Document.pod │ DocumentFragment.pod │ DocumentType.pod │ DOMException.pm │ DOMImplementation.pod │ Element.pod │ ElementDecl.pod │ Entity.pod │ EntityReference.pod │ NamedNodeMap.pm │ NamedNodeMap.pod │ Node.pod │ NodeList.pm │ NodeList.pod │ Notation.pod │ Parser.pod │ PerlSAX.pm │ ProcessingInstruction.pod │ Text.pod │ XMLDecl.pod │ ├─Expat │ encoding.h │ Expat.pm │ Expat.xs │ Makefile.PL │ typemap │ ├─Handler │ BuildDOM.pm │ └─Parser │ LWPExternEnt.pl │ ├─Encodings │ big5.enc │ euc-kr.enc │ iso-8859-2.enc │ iso-8859-3.enc │ iso-8859-4.enc │ iso-8859-5.enc │ iso-8859-7.enc │ iso-8859-8.enc │ iso-8859-9.enc │ Japanese_Encodings.msg │ README │ windows-1250.enc │ windows-1252.enc │ x-euc-jp-jisx0221.enc │ x-euc-jp-unicode.enc │ x-sjis-cp932.enc │ x-sjis-jdk117.enc │ x-sjis-jisx0221.enc │ x-sjis-unicode.enc │ └─Style Debug.pm Objects.pm Stream.pm Subs.pm Tree.pm