shokosブログ

プログラミング

twitterのTLを取得してはてなに投稿する計画その1.3

Hatenaに投稿するクラス

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HatenaContribution {
	private Valuekeeper value;
	private StringBuilder tl;

	public HatenaContribution(Valuekeeper value, StringBuilder tl) {
		this.tl = tl;
		this.value = value;
	}

	public void contribute() throws IOException {
		String certification = WSSE.getWsseHeaderValue(value.getHatenaId(),
				value.getHatenaPassword());
		URL url = new URL("http://d.hatena.ne.jp/" + value.getHatenaId()
				+ "/atom/blog");
		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
		connection.addRequestProperty("X-WSSE", certification);
		connection.setDoOutput(true);
		OutputStream outputStream = connection.getOutputStream();
		String postXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
				+ "<entry xmlns=\"http://purl.org/atom/ns#\">"
				+ "<title>現在のTL</title>" + "<content type=\"text/plain\">" + tl
				+ "</content>" + "</entry>";
		PrintStream ps = new PrintStream(outputStream, true, "UTF-8");
		ps.print(postXml);
		ps.close();
		connection.getInputStream();

	}
}

ここで使用しているWSSEとは、はてなアクセスの際、認証のためにリクエストヘッダに追加するプロパティを取得するためのクラスです

yoshioriさんからいただきましたー



参考サイト
はてなダイアリーAtomPubとは - はてなキーワード