URLEncoder

URLEncoder, URLDecoder を使うと簡単にURLエンコーディングができます。URLエンコーディングというのはapplication/x-www-form-urlencoded MIME 形式に変換することで、たとえば、<title>タイトル</title>という文字列をURLエンコーディングすると、%3Ctitle%3E%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%3C%2Ftitle%3Eとなります。

詳細はHTML仕様の17.13.4 Form content typesを参照してください。符号化にあたっては、次の規則に従います。

  1. [a-z][A-Z][0-9]は元のまま残す
  2. [.-*_]は元のまま残す
  3. 空白文字はプラス記号に変換する(‘ ‘→’+’)
  4. ほかのすべての文字はバイト値に変換され、%数値となる(“<“→”%3C”)

Javaでのサンプルプログラムは次のようになります。

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class UrlEncoderTest {
public static String createHtmlText() {
String text = “<html><head><title>タイトル</title></head><body>日本語</body></html>”;
return text;
}
public static void main(String[] args) {
String data = “日本語”;
String encoding = “Shift_JIS”;
String src = null;
try {
src = URLEncoder.encode(data, encoding);
String dst = URLDecoder.decode(src, encoding);
System.out.println(“data: “+data);
System.out.println(“src : “+src);
System.out.println(“dst : “+dst);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
data = createHtmlText();
encoding = “UTF-8”;
try {
src = URLEncoder.encode(data, encoding);
String dst = URLDecoder.decode(src, encoding);
System.out.println(“data: “+data);
System.out.println(“src : “+src);
System.out.println(“dst : “+dst);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}

実行結果は次の通り。

data: 日本語
src : %93%FA%96%7B%8C%EA
dst : 日本語
data: <html><head><title>タイトル</title></head><body>日本語</body></html>
src : %3Chtml%3E%3Chead%3E%3Ctitle%3E%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%3C%2Ftitle%3E%3C%2Fhead%3E%3Cbody%3E%E6%97%A5%E6%9C%AC%E8%AA%9E%3C%2Fbody%3E%3C%2Fhtml%3E
dst : <html><head><title>タイトル</title></head><body>日本語</body></html>
カテゴリー: Java

PlugProxy

実際に流れているHTTPのデータ解析をするのにはパケットキャプチャをすればいいのだが、これを簡単にするためのツールがある。PlugProxyがそれだ。

Javaアプリケーションなので、Javaが動作しない環境では、JDKダウンロードページなどから、JRE 5.0 Update 4 か JDK 5.0 Update 4 をダウンロードしてインストールしておこう。

PlugProxyは、http://www.bbzzdd.com/plugproxy/からダウンロードできる。ダウンロードしたら、アーカイブファイルを展開して、好きなディレクトリへおけばいい。

使い方は簡単だ。Windowsならplugproxy-gui.bat をエクスプローラからダブルクリックすればPlugProxyが起動する。画面にはhost、Remote Port、Local Port を指定できるようになっている。どんな値を指定すれば良いかについては、次のリストを参考にしてもらいたい。

  • host :接続するマシン名 例)www.sssg.org
  • Remote Port :接続するポート番号 例)80
  • Local Port :プロキシのポート番号 例)18080

こうして値を指定したら[start]をクリックしよう。するとプロキシーが起動するので、http://www.sssg.org:80/ へアクセスしたい場合は、http://192.168.1.20:18080/のようにブラウザのロケーションバーへ入力する。192.168.1.20はPlugProxyが起動しているマシンのIPアドレスだ。同一マシンで作業をしているなら192.168.1.20の代わりにlocalhostでもいい。

すると、http://www.sssg.org:80/ へアクセスしたときに発生するリクエストデータとレスポンスデータがPlugProxyの画面へ表示される。PlugProxyを使うことによって、次のようなデータ転送がされるのだ。

Webブラウザ <—> 192.168.1.20:18080 <—> www.sssg.org:80

こういうツールはWebアプリやWebブラウザの開発時に重宝するだろう。

カテゴリー: Java

Wiki

しらない間に www.mobster.jp が出会い系サイトになっていて、MobWikiの開発状態もよくわからない状態になっていた。うーん、1.2をダウンロードしていなかったのが悔やまれる。ちょっと調べたら、JaJaWikiとかjsfwikiとかもあるようだ。そちらを使うように考えてもいいのだが、jsfwikiは直接HTMLタグを書き込める整形ルールを採用しているせいか、編集にはログインが前提となっている感じがする。となると、JaJaWikiかな。

カテゴリー: Java