TelnetみたいなHttpクライアント

HttpClient使ったら,ごっつ簡単にできた.
コードを載せるまでもないが,まあいいか.

import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.util.EncodingUtil;

public class Console {
  private static String url = "http://localhost:7001/example/echo.jsp";
  private HttpClient client;

  public Console(String args) {
    client = new HttpClient();
  }

  public static void main(String args) {
    Console console = new Console(args);
    console.go();
  }

  private void go() {
    try {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      String str = "";
      while (str != null) {
        System.out.print("console> ");
        str = in.readLine();
        process(str);
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  private void process(String str) throws Exception {
    PostMethod post = new PostMethod(url);
    NameValuePair[] data = { new NameValuePair("input", str) };
    String encodedDate = EncodingUtil.formUrlEncode(data, "Windows-31J");
    post.setRequestBody(encodedDate);
    post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    client.executeMethod(post);
    String output = post.getResponseBodyAsString();
    System.out.println(output);
  }
}

ほいで呼び出してるJSPはこんなの.

<%@ page contentType="text/html;charset=Windows-31J" %>
<%= request.getParameter("input") %>

これをふくらまして,Groovy Consoleみたいなのを呼び出したら,ちょっと楽しいかも.:-)


(追記)PnutsConsoleなるものをチョロりとつくり,テキトウなEARに紛れ込ませ,さっきのクライアントから操作してみた.こりゃ,ちょっとどころじゃなく,すごく楽しい.
#うひゃぁ.