ver.1.11 2002-12-12 Fabrice Co. http://www.fabrice.co.jp/
Fabrice XML-RPC ClientはXML-RPCサービスにXML-RPCリクエストを送信して、レスポンスを受信するだけのツールです。 リクエストとレスポンスはそれぞれXML文書ですが、パースはしないでそのまま表示します。 元々XML-RPCサービスを開発する際にデバッグ用のツールとして製作したものです。 有限会社 ファブリスのサイトから無償でダウンロードして無償でご利用頂けます。 まったく整理されていないのですが、Borland Delphi5で開発したソースコードを添付しました。依存するライブラリがいくつかあります。入手先などはソースに記述してある情報を参考にしてください。
とにかく最初にXML-RPC仕様書 http://www.xmlrpc.com/specに目を通しましょう。 英語ですがカンタンで明快な文章です。
次に、日本語版 XML-RPC HOWTO http://www.linux.or.jp/JF/JFdocs/XML-RPC-HOWTO/を熟読しましょう。理解が深まり大変参考になります。
順番は逆でもいいです。
IntrospectionはgooのEXCEED英和辞典によると内省、自己反省だそうです。
XML-RPCサービスで提供されるメソッドに関する引数、戻り値、使い方などの情報を取得するためのメソッドがhttp://xmlrpc.usefulinc.com/doc/reserved.htmlで提案されました(注1)。
多くのXML-RPCライブラリが標準でIntrospectionメソッド群をサポートしています。 Fabrice XML-RPC Clientでは、system.listMethods、system.methodHelp、system.methodSignatureの3つのメソッドを使ってサポートされているメソッドに関する情報を簡単に取得できます。
以下はXML-RPC Introspection仕様書の下手で不十分な日本語訳そのままです。オリジナルの英語の仕様書を読むことをお勧めします。
system.listMethodsはそのXML-RPCサーバに用意されているメソッド名を列挙するメソッドです。 system.listMethodsは引数をとらず、string型の配列を返します。string型の値は用意されているメソッドの名前です。
このメソッドにはXML-RPCサーバに用意されているメソッド名を引数として渡してやります。引数はメソッド名1つだけです。
戻り値には引数で渡したメソッドで利用可能なシグネチャの配列が返ってきます。 シグネチャは型の配列です。最初の型は戻り値の型です。2番目以降は引数の型です。
このメソッドにはXML-RPCサーバに用意されているメソッド名を引数として渡してやります。引数はメソッド名1つだけです。
戻り値には引数で渡したメソッドの使い方の説明がstring型で返ってきます。 もし説明が用意されていない場合は、空のstring型が戻されます。 説明はHTMLで用意しておくこともできます。
XML-RPCタブ内で共通のパラメータとして、ホスト、ポート、URIがあります。これはそれぞれ、利用するXML-RPCサーバのホスト名、ポート番号、サーバのURIをあらわしています。
サービスはデフォルトのサービス定義ファイルservice.opml(fbxmlrpc.exeと同じディレクトリにあります)の内容が、起動時に読み込まれます。このservice.opmlはOPML仕様の定義ファイルです。この定義ファイルを自分用に書き換えることで簡単によく使うXML-RPCサーバを選択できます。起動後に別のサービス定義ファイルを読み込むこともできます。
図のようにサービスを選択すると、ホスト、ポート、URIが切り替わります。
OPMLについては、http://www.opml.org/を参照してください。Fabrice XML-RPCクライアントではアウトライン表示になっていないので、今一つ活かしきれていませんが...。
listMethodボタンをクリックすると、以下の図のように、XML-RPCサーバで用意されているメソッドの一覧が表示されます。
注意 XML-RPCサーバがlistMethodに対応していない場合は表示されません。
listMethodでメソッド名の一覧が表示されたら、表示されたメソッドを選択して右クリックするか、methodHelpボタンをクリックします。
自動的にResponseタブが表示されます。
リクエストに使ったXML文書はRequestタブに以下のように表示されています。
methodHelpとまったく同じです。レクエストとレスポンスのXML表記については、XML-RPC仕様書を参照してください。
リクエストタブでは、ファイルからXML-RPCリクエストを読み込むことができます。
ファイルを選択(1クリック)すると読み込まれ、メソッド名を表示します。
Executeボタンをクリックすると、指定されたXML-RPCサーバにリクエストを送信します。
ファイルの選択ボックスでファイルをダブルクリックすると、正しいXML-RPCリクエストの場合は、XML-RPCサーバに送信してレスポンスタブを表示します。
設定タブではFabrice XML-RPC Clientの利用上の設定を変更することができます。
特に、日本語UTF-8でのデータをやり取りする場合は必ず変更する必要があります。
変更しないとリクエストもレスポンスも日本語を含んでいる場合文字化けして読めません。
使用するフォントとフォントサイズを指定します。 日本語のデータを利用する場合は「MS Pゴシック」の9ポイントが良いでしょう。
ビープチェックボックスをチェックしておくと、リクエストの送信時、レスポンスの受信時など、なにかのイベントが起きたときにビープ音を鳴らします。チェックを外しておくと黙っています。
XMLパーサの設定です。
UTF-8 to WideString Conversion enabled:
XML文書のエンコーディングにUTF-8が指定されていたら、WideString(Delphi用語)に変換します。
このチェックをしておくと、日本語のデータをやり取りするときに自動的にコード変換して表示します。
Remove XML White Space:
チェックしておくと、Well-formedなXML文書としては無駄な空白などを取り除いて表示します。
プロキシ経由でXML-RPCサーバに接続する場合はここに、プロキシのホスト名とポート番号を書きます。
fbxmlrpc.exeのあるディレクトリ下にreq.systemとreq.yubinの2つのディレクトリがあり、そのディレクトリ内にはXML-RPCリクエストファイルがあります。これらはRequestタブから読み込んで実行することができます。
req.yubin内のリクエストファイルは、全国郵便番号一覧 郵便専門ネット http://yubin.senmon.net/の提供するXML-RPCサービスへのリクエストのサンプルとなっています。
Fabrice XML-RPC Clientはfbxmlrpc.exeのあるディレクトリにfbxmlrpc.logというログファイルを作成します。 このログファイルにはTCPの接続、切断や、実際にやりとりされたXML文書が記録されています。 デバッグに利用すると便利だと思います。