JavaでXML-RPCを使ってブログに投稿

metaWeblog.newPostメソッドを使って投稿出来るものを書いてみた。
apacheのxmlrpcライブラリを使ってる。

import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.XmlRpcException;

import java.net.URL;

import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;

public class ItemPublisher {

    public static void main(String[] args) {
        XmlRpcClient client = null;
        ArrayList<Object> params = new ArrayList<Object>();
        String api = "metaWeblog.newPost";
        String url = "http://abcd.com/XMLRPC/";
        try {
            XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
            config.setServerURL(new URL(url));
            client = new XmlRpcClient();
            client.setConfig(config);
        } catch( MalformedURLException e ) {
            System.out.println( "illegal URL: " + url + " " + e );
        }
        HashMap<String,Object> struct = new HashMap<String,Object>();
        struct.put( "title", "TEST2" );
        //struct.put( "categories", "test" );
        struct.put( "description", "こんにちわ、世界。" );
        struct.put( "dateCreated", new Date() );
        /* List に与えたいデータをAPI定義の順番に追加する */
        params.add("0");//blogid
        params.add("user");//username
        params.add("pass");//password
        params.add(struct);//content
        params.add("1");//publish

        try {
            Object o = client.execute( api, params );
            System.out.println( "result: " + o.toString() );
        } catch( XmlRpcException e ) {
            System.out.println( "XML-RPC ERROR at execute " + e );
        }
    }
}

URLとかの設定内容をきちんとやればどこでも動くはず。たぶん。