basyura's blog

あしたになったらほんきだす。

はてなAPIへ Java を使って投稿

ソースはここを丸ぱくり。はまったのは文字化けとContentTypeの指定。 文字化けは URLEncoder.encode で UTF-8 を指定すればよかったようだ・・・。

writer.write("status=${URLEncoder.encode('test=テスト from Groovy', 'UTF-8')}")

GroovyではてなAPIを利用しハイクに投稿Goovy版

Content-Type の指定は空白が無駄に入っていたせいだった。

【正】"application/x-www-form-urlencoded; charset=UTF-8"
【誤】"application/x-www-form-urlencoded ; charset=UTF-8"

で、こんな感じで投稿成功。

  HttpURLConnection urlconn = (HttpURLConnection)url.openConnection();
  urlconn.setRequestMethod("POST");
  urlconn.setRequestProperty("Accept-Language", "ja");
  urlconn.setRequestProperty("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
  urlconn.setDoOutput(true);
  urlconn.connect();

  PrintWriter	writer = new PrintWriter(urlconn.getOutputStream());
  writer.write("status=" + URLEncoder.encode("test=てすと","UTF-8"));
  writer.flush();
  writer.close();

コンパイル → 実行 の手間を考えると Groovy いいなぁと思った今日この頃。