// キャッシュを無効にする
cgi.setUseCaches(false);
// 文字列の出力を期待
cgi.setRequestProperty("Content-type","text/plain");
キャッシュを無効にしないと、
アクセスするときの状況によって出力の変わる CGI を正しく扱えません。
次に CGI とのデータ通信ですが、POST 型と GET 型では少し方法が異なります。
まずは GET 型の場合です。
CGI に渡す情報はアドレス中に含まれているので
特別なことをする必要はありません。
CGI から得られる情報は URLConnection オブジェクトから
getInputStream() メソッドで InputStream を取得し、
あとは普通のストリームとして読み取ればいいだけです。
ただし、前もって setDoInput(boolean doinput) メソッドで
入力を許可しておく必要があります。
cgi.setDoInput(true); // CGI からの入力を有効にする
InputStream inStream=cgi.getInputStream();
次に、POST 型の場合です。
CGI に渡す情報は URLConnection オブジェクトから
getOutputStream() メソッドで OutputStream を取得し、
あとは同じく普通のストリームとして書き込めばいいだけです。
ただし、前もって setDoOutput(boolean dooutput) メソッドで
出力も許可しておく必要があります。
CGI から得られる情報は GET 型と同様です。
cgi.setDoOutput(true); // CGI への出力を有効にする
cgi.setDoInput(true); // CGI からの入力を有効にする
OutputStream outStream=cgi.getOutputStream();
InputStream inStream=cgi.getInputStream();
なお、私が使っている Java←→CGI 通信用クラス
TextCGI.java
を公開しますので、参考にしてみてください。
このクラスは自由に使って頂いて結構です。