Mercurial > hg > Members > nobuyasu > tightVNCProxy
view src/test/XMLRPCTest.java @ 141:fc77596d3064
add XMLRPCTest.java
author | e085711 |
---|---|
date | Sat, 03 Sep 2011 13:47:08 +0900 |
parents | |
children | 1a0c60efc627 |
line wrap: on
line source
package test; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.xmlrpc.XmlRpcException; import org.apache.xmlrpc.client.XmlRpcClient; import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; public class XMLRPCTest { protected static final String META_WEBLOG_NEW_POST = "metaWeblog.newPost"; protected static final String META_WEBLOG_EDIT_POST = "metaWeblog.editPost"; public String getBlogid(String username,String password, String url) throws Exception { XmlRpcClient client = createClient(url); List<Object> params = new ArrayList<Object>(); params.add("77"); params.add(username); params.add(password); // Object result = client.execute("blogger.getUsersBlogs", params); Object result = client.execute("metaWeblog.getPost", params); if (result instanceof Boolean) { throw new Exception("can't get UsersBlogs"); } // Object obj = ((Object[])result)[0]; // Map map = (HashMap) obj; // String blogid = (String) map.get("blogid"); // return blogid; Map map = (HashMap) result; String s = String.valueOf(map.get("description")); return s; } public int post(String title, String description, String blogId, String loginId, String pw, String url) throws IOException { int ret = -1; // 記事を作る // 必要に応じてカスタムフィールドやslugの引数も追加。 Map<String, Object> contentParam = buildContent(title, description); // パラメータとして記事を渡す。 List<Object> params = buildParam(blogId, loginId, pw, contentParam); // クライアント作る XmlRpcClient client = createClient(url); Object o = null; try { // 送信 o = client.execute(META_WEBLOG_NEW_POST, params); ret = Integer.parseInt(o.toString()); } catch (XmlRpcException e) { e.printStackTrace(); } return ret; // 成功なら1 } public int edit(String title, String description, String blogId, String loginId, String pw, String url) throws IOException { int ret = -1; Map<String, Object> contentParam = buildContent(title, description); List<Object> params = buildParam(blogId, loginId, pw, contentParam); XmlRpcClient client = createClient(url); Object o = null; try { o = client.execute(META_WEBLOG_EDIT_POST, params); } catch (XmlRpcException e) { e.printStackTrace(); } return ret; // 成功ならtrue } /** * XmlRpcClientをインスタンス化する * * @param postUrl * @return * @throws MalformedURLException */ protected XmlRpcClient createClient(String postUrl) throws MalformedURLException { XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL(postUrl.trim())); XmlRpcClient client = new XmlRpcClient(); client.setConfig(config); return client; } /** * コンテンツ用のパラメーターを組み立てる * * @param wordsalad * @return */ protected Map<String, Object> buildContent(String title, String description) { Map<String, Object> content = new HashMap<String, Object>(); // XMLRPC用に改行コードを書き換える description = description.replaceAll("\n", "<br/>"); content.put("title", title); String[] categories = new String[1]; categories[0] = "XML-RPC"; content.put("categories", categories); content.put("description", description); content.put("dateCreated", ""); content.put("wp_slug", ""); // カスタムフィールドの設定 /* * Map<String, Object>[] customFields = new Map[1]; * * Map<String, Object> jimusho = new HashMap<String, Object>(); * * jimusho.put("key", "company"); * * jimusho.put("value", "じむしょ"); * * customFields[0] = jimusho; * * content.put("custom_fields", customFields); */ return content; } protected List<Object> buildParam(String blogId, String loginId, String pw, Map<String, Object> contentParam) { List<Object> params = new ArrayList<Object>(); params.add(""); // appkey params.add(blogId); params.add(loginId); params.add(pw); params.add(contentParam);// content params.add("1");// publish return params; } public static void main(String[] args) throws Exception { String title = "xml-rpcを用いての投稿テスト @ editPost"; String description = "metaWeblog.editPost<br>xml-rpc @ java"; String blogId = "77"; String loginId = "aotokage52"; String pw = "jasonkidd"; String url = "http://single.cr.ie.u-ryukyu.ac.jp/wordpress/xmlrpc.php"; XMLRPCTest logic = new XMLRPCTest(); // logic.post(title, description, blogId, loginId, pw, url); // logic.edit(title, description, blogId, loginId, pw, url); String result = logic.getBlogid(loginId, pw,url); System.out.println("result = "+ result); } }