« Amazon アソシエイト | トップページ | 順番に試そう(blogger.newPost) »

2012年3月14日 (水)

mt.supportedMethods

サーバーがサポートするXML-RPCメソッドについての情報を取得するメソッドです。
最初text/xmlしか設定してなかったので取得に失敗していました。
text/xml;charset=utf-8;を追加することによって正常に取得できました。

ソース

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.Socket;
import java.net.URL;


public class RpcTest1 {

public static void main(String args[]) {

OutputStream os = null;
OutputStreamWriter osw = null;
InputStream is = null;
BufferedReader br = null;

try {

URL url = new URL("https://app.f.cocolog-nifty.com/t/api");
HttpURLConnection con = (HttpURLConnection) url.openConnection();

con.setDoOutput(true);
con.setDoInput(true);

con.setRequestMethod("POST");
con.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4321)");
con.setRequestProperty("Host","my.host.com");
con.setRequestProperty("Content-Type", "text/xml;charset=utf-8");

HttpURLConnection.setFollowRedirects(false);
con.setInstanceFollowRedirects(false);

os = con.getOutputStream();//POST用のOutputStreamを取得

StringBuffer data = new StringBuffer();//POSTするデータ
osw = new OutputStreamWriter(os);

data.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
data.append("<methodCall>");
data.append("<methodName>mt.supportedMethods</methodName>");
data.append("</methodCall>");

osw.write(data.toString());//データをPOSTする
osw.flush();

is = con.getInputStream();//POSTした結果を取得
br = new BufferedReader(new InputStreamReader(is));
String s;
while ((s = br.readLine()) != null) {
System.out.println(s);
}


} catch (Exception e) {

if (osw != null) {
try {
osw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}

if (os != null) {
try {
os.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}

if (br != null) {
try {
br.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}

if (is != null) {
try {
is.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}

e.printStackTrace();

}

}

}

実行結果

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<string>blogger.newPost</string>
</value>
<value>
<string>blogger.editPost</string>
</value>
<value>
<string>blogger.getRecentPosts</string>
</value>
<value>
<string>blogger.getUsersBlogs</string>
</value>
<value>
<string>blogger.getUserInfo</string>
</value>
<value>
<string>blogger.deletePost</string>
</value>
<value>
<string>metaWeblog.getPost</string>
</value>
<value>
<string>metaWeblog.newPost</string>
</value>
<value>
<string>metaWeblog.editPost</string>
</value>
<value>
<string>metaWeblog.getRecentPosts</string>
</value>
<value>
<string>metaWeblog.newMediaObject</string>
</value>
<value>
<string>mt.getCategoryList</string>
</value>
<value>
<string>mt.setPostCategories</string>
</value>
<value>
<string>mt.getPostCategories</string>
</value>
<value>
<string>mt.getTrackbackPings</string>
</value>
<value>
<string>mt.supportedTextFilters</string>
</value>
<value>
<string>mt.getRecentPostTitles</string>
</value>
<value>
<string>mt.publishPost</string>
</value>
<value>
<string>mt.setNextScheduledPost</string>
</value>
<value>
<string>wp.newPage</string>
</value>
<value>
<string>wp.editPage</string>
</value>
<value>
<string>wp.deletePage</string>
</value>
<value>
<string>wp.getPage</string>
</value>
<value>
<string>wp.getPages</string>
</value>
<value>
<string>wp.getComments</string>
</value>
<value>
<string>wp.editComment</string>
</value>
<value>
<string>wp.deleteComment</string>
</value>
</data>
</array>
</value>
</param>
</params>
</methodResponse>


« Amazon アソシエイト | トップページ | 順番に試そう(blogger.newPost) »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1646176/44483844

この記事へのトラックバック一覧です: mt.supportedMethods:

« Amazon アソシエイト | トップページ | 順番に試そう(blogger.newPost) »