Mercurial > hg > Members > nobuyasu > tightVNCProxy
view src/myVncProxy/XmlRpc.java @ 146:713d4b9c9439
modify .hgignore
author | e085711 |
---|---|
date | Mon, 05 Sep 2011 06:03:51 +0900 |
parents | 8bdbed4c4505 |
children |
line wrap: on
line source
package myVncProxy; 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"; static final String META_WEBLOG_GET_POST = "metaWeblog.getPost"; XmlRpcClient client; XmlRpcClientConfigImpl config; 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 = checkUrl(url); client = createClient(postUrl); } String checkUrl(String url) { String str; if(url.endsWith("xmlrpc.php")){ return url; } else if(url.endsWith("/")) { str = url + "xmlrpc.php"; } else { str = url + "/xmlrpc.php"; } return str; } XmlRpcClient createClient(String url) throws MalformedURLException { config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL(url.trim())); XmlRpcClient c = new XmlRpcClient(); c.setConfig(config); return c; } String newPost() { String result = post(META_WEBLOG_NEW_POST); blogId = result; return result; } 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(API, 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; } String getUrl() { List<Object> params = new ArrayList<Object>(); params.add(blogId); params.add(loginId); params.add(pw); Object result = null; String str = "false"; try { result = weblog(params, META_WEBLOG_GET_POST); Map<String, Object> map = (HashMap) result; str = (String) map.get("link"); } catch (XmlRpcException e) { e.printStackTrace(); } return str; } Object weblog(List<Object> params, String API) throws XmlRpcException { Object o = null; o = client.execute(API, params); return o; } public static void main(String[] args){ if (args.length < 2) { System.out.println("usage: program 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"; // String url = "http://single.cr.ie.u-ryukyu.ac.jp/wordpress/"; String url = "http://single.cr.ie.u-ryukyu.ac.jp/wordpress"; XmlRpc rpc; try { rpc = new XmlRpc(blogId, username, password, url ); rpc.setTitle("xml-rpcを用いての投稿 @ java"); rpc.setDescription("java からの投稿\nテスト\n"); rpc.addDescription("addDescription()\n"); rpc.addCategories("XML-RPC"); String res = rpc.newPost(); // String res = rpc.editPost(); String res2 = rpc.getUrl(); System.out.println(res); System.out.println(res2); } catch (MalformedURLException e) { e.printStackTrace(); } } }