Mercurial > hg > Members > nobuyasu > tightVNCProxy
view src/test/XmlRpc.java @ 143:1a0c60efc627
add XmlRpc
author | e085711 |
---|---|
date | Sat, 03 Sep 2011 15:24:41 +0900 |
parents | |
children | c1d7d4fbcfb9 |
line wrap: on
line source
package test; 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 XmlRpc { static final String META_WEBLOG_NEW_POST = "metaWeblog.newPost"; static final String META_WEBLOG_EDIT_POST = "metaWeblog.editPost"; XmlRpcClient client; String loginId, pw, postUrl; String blogId; String title = ""; String description = ""; ArrayList<String> categories = new ArrayList<String>(); XmlRpc(String blogId, String loginId, String pw, String url) throws MalformedURLException { this.blogId = blogId; this.loginId = loginId; this.pw = pw; postUrl = url; client = createClient(url); } XmlRpcClient createClient(String url) throws MalformedURLException { XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL(url.trim())); XmlRpcClient c = new XmlRpcClient(); c.setConfig(config); return c; } String editPost() { return post(META_WEBLOG_EDIT_POST); } String post(String API) { String result = ""; Map<String, Object> contentParam = buildContent(); List<Object> params = buildParam(contentParam); Object o = null; try { o = client.execute(META_WEBLOG_EDIT_POST, params); result = o.toString(); } catch (XmlRpcException e) { e.printStackTrace(); } return result; } protected void setTitle(String str) { this.title = str; } protected void setDescription(String str) { this.description = str; } protected void addDescription(String str) { this.description += str; } protected void setCategories(String[] str) { for(int i = 0; i < str.length; i ++) categories.add(str[i]); } protected void addCategories(String str) { categories.add(str); } protected Map<String, Object> buildContent() { Map<String, Object> content = new HashMap<String, Object>(); description = description.replaceAll("\n", "<br/>"); content.put("title", title); content.put("categories", categories.toArray()); content.put("description", description); content.put("dateCreated", ""); content.put("wp_slug", ""); return content; } protected List<Object> buildParam(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 MalformedURLException { if (args.length < 2) { System.out.println("usage: XmlRpc username password "); System.exit(0); } String username = args[0]; String password = args[1]; String blogId = "77"; String url = "http://single.cr.ie.u-ryukyu.ac.jp/wordpress/xmlrpc.php"; XmlRpc rpc = new XmlRpc(blogId, username, password, url ); rpc.setTitle("xml-rpcを用いての投稿 @ java"); rpc.setDescription("java からの投稿\nテスト"); rpc.addCategories("XML-RPC"); String res = rpc.editPost(); System.out.println(res); } }