XML-RPCサーバの死活監視が必要になり、例のごとくcurl
を使ってシンプルに実現したい。
ググるとXMLファイルを読み込む方法が散見されるが、このためにファイルを追加するのは避けたいし、死活監視用に作成したメソッド(alive
)は引数を持たないシンプルな実装。
以下のようにシンプルなXMLなのでコマンドラインに直接書きたい。
(一目瞭然ですが、メソッド名は要素内の値で指定できます)
<?xml version='1.0'?>
<methodCall>
<methodName>alive</methodName>
<params></params>
</methodCall>
結果として、以下でいけた。以下はExampleServiceのliveメソッドを実行している。
curl -X POST -d '<?xml version='\''1.0'\''?><methodCall><methodName>alive</methodName><params></params></methodCall>' http(s)://<domain>:<port>/ExampleService.php
ポイントは以下の2つ
-
-X POST
・・・XML-RPCはPOSTメソッドなのでPOSTを指定 -
'\''
・・・シングルクォートのエスケープ ★後で気づいたけどダブルクォートだとエスケープ不要
あとは、指定しないでも問題ありませんでしたが、プロトコルがHTTP/XMLであることを明示しておきたい場合は、ヘッダーオプションでtext/xml
を指定するとよいかもしれません。
-H 'Content-type: text/xml'