JavaでConsoleアプリ(その3)

Consoleの方は、「[java]JavaでConsoleアプリ(その2の2)」で書いたもので一応凍結して、いよいよ実際にTwitterAPIとやり取りをする部分を作りたいと思いました。

で、土台になるクラス。

package twitter;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 通信兵
 * @author itengineer
 *
 */
public class WebAgent {
	public String get(String path) throws IOException {
		URL url = new URL(path);
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		conn.setRequestMethod("POST");	// (・∀・)
		conn.setInstanceFollowRedirects(false);
		conn.setRequestProperty("Accept-Language", "ja;q=0.7,en;q=0.3");
		conn.connect();
        StringBuffer buf = new StringBuffer();
        BufferedReader br = new BufferedReader(
        		new InputStreamReader(conn.getInputStream(), "UTF-8"));
        String line;
        while (null != (line = br.readLine())) {
            buf.append(line).append("\n");
        }
		conn.disconnect();

		return buf.toString();
	}
}

とりあえずTimelineを追跡するためだけの実装になっています。

なぜStringで返却しているか、というと返却される内容が必ずしもAPIから返されるものではないという前提を置いているためです。アレな感じのHTMLが返却された時に、それをフックして自動的にリトライできるような仕組みを作りたいので、

        BufferedReader br = new BufferedReader(
        		new InputStreamReader(conn.getInputStream(), "UTF-8"));

ここで得ている内容をこの

		conn.disconnect();

の後も保持できる仕組みにしたい、と。


とりあえずココマデ。(ショボショボだorz