YAXOネタでSpy-XML-RPCを試す。本当はYAXOネタはもう打ち止めとしようとしてたんだけど、WEBサービス 郵便専門ネットを外部システムから活用するというサイトで、XML-RPCサービスしていたので、サンプルに使わせてもらいました。Spy-XML-RPCはXML-RPCのクライアントを実装したものです。インストールは下記参照。
ただN7ではXMLRPCProxy>>sendXmlRpcを次のように修正する必要がありました。
で上記サイト(郵便専門ネットをXML-RPCで活用する)を参考に郵便番号から住所を取得してみるコード。
補足:本来はXMLDocument>>encodingで得たエンコードにしたがって、XMLRPCDecoder>>decode:でコード変換すべき。サーバはSqueakMapにXMLRPCが登録されています。
参考リンク:
■XML-RPC Server
次回は梅澤さんのSIXXにチャレンジかなと…
- Spy-XML-RPCをダウンロード・ファイルイン
- YAXOのChangeSetをダウンロード・ファイルイン
ただN7ではXMLRPCProxy>>sendXmlRpcを次のように修正する必要がありました。
"xml _ s getRestOfBuffer: (res at: 3) contents readStream." xml _ (s getRestOfBuffer: (res at: 3)) readStream.
で上記サイト(郵便専門ネットをXML-RPCで活用する)を参考に郵便番号から住所を取得してみるコード。
| url proxy result | url := Url absoluteFromText: 'http://yubin.senmon.net:80/service/xmlrpc/'. proxy := XMLRPCProxy withUrl: url. result := proxy invokeMethod: 'yubin.fetchAddressByPostcode' withArgs: #('1160013'). result do: [ :dic | dic keysDo: [ :key | (dic at: key) class == String ifTrue: [ | t | t := (dic at: key) convertFromWithConverter: (TextConverter newForEncoding: 'utf-8'). dic at: key put: t.]]]. result --> #(a Dictionary('addr_name'->'' 'addr_name_kana'->'' 'city'->'荒川区' 'city_kana'->'アラカワク' 'data_type'->'p' 'jiscode'->'13118' 'other'->'' 'postcode'->'1160013' 'pref'->'東京都' 'pref_kana'->'トウキョウト' 'town'->'西日暮里' 'town_kana'->'ニシニッポリ' 'yid'->38111 ))
補足:本来はXMLDocument>>encodingで得たエンコードにしたがって、XMLRPCDecoder>>decode:でコード変換すべき。サーバはSqueakMapにXMLRPCが登録されています。
参考リンク:
■XML-RPC Server
次回は梅澤さんのSIXXにチャレンジかなと…