- PR -

AppletからServletのHTTP通信

1
投稿者投稿内容
ojagggyo
常連さん
会議室デビュー日: 2003/10/13
投稿数: 23
投稿日時: 2003-10-27 23:17
AppletからServletへHTTP通信でデータを送る(出力)する処理で、
Applet側を以下のようにするとServler側は何も動きませんでした。
(入力と出力を両方行う場合は正常でした)
他のWEBを探してもアプレットからの出力のみを行うサンプルコーディングが
見つからず、こちらに投稿しました。

URL url =new URL("http://127.0.0.1:8080/MonitorWeb/monitor");
URLConnection ucon = url.openConnection();
ucon.setDoOutput(true);
ucon.setDoInput(false);
ucon.setUseCaches(false);
ucon.setRequestProperty("Content-type", "application/octet-stream");
ObjectOutputStream dos =new ObjectOutputStream(ucon.getOutputStream());
Vector v = new Vector();
v.add(new String("BBB"));
dos.writeObject(v);
dos.flush();
dos.close();
ニシトミ
ベテラン
会議室デビュー日: 2003/04/24
投稿数: 76
お住まい・勤務地: 千葉・東京
投稿日時: 2003-10-27 23:33
こんばんわ
ニシトミです。

Appletでオブジェクト通信ですよね!
Servletのソースを見てみないと、なんともコメントが出来ないのでは
ないでしょうか?
ojagggyo
常連さん
会議室デビュー日: 2003/10/13
投稿数: 23
投稿日時: 2003-10-27 23:55
サーブレット側のコーディングでです。
(クローズの位置に問題がありますが見なかったことにしてください)

private void sendOptionData(
HttpServletRequest request,HttpServletResponse response) {
try {
ObjectInputStream in =
new ObjectInputStream(request.getInputStream());
Vector v = new Vector();
v = (Vector) in.readObject();
in.close();
System.out.println((String) v.get(0));
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
}
Paul
ベテラン
会議室デビュー日: 2002/04/30
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 2003-10-28 12:28
中込です。
引用:

ojagggyoさんの書き込み (2003-10-27 23:17) より:
AppletからServletへHTTP通信でデータを送る(出力)する処理で、
Applet側を以下のようにするとServler側は何も動きませんでした。
(入力と出力を両方行う場合は正常でした)


正当な、振る舞いだと思います
HTTPは要求ー応答型のパラダイムに則った同期型のプロトコルです。
ですから、内容的には一方向型の通信でも、クライアントは応答を受けなくてはなりません。

最低限、HTTPの結果コードを受けるほうが良いと思います。
コード:
	URL url =new URL("http://127.0.0.1:8080/MonitorWeb/monitor");
	URLConnection ucon = url.openConnection();
	ucon.setDoOutput(true);
	ucon.setDoInput(true);
	ucon.setUseCaches(false);
	ucon.setRequestProperty("Content-type", "application/octet-stream");
	ObjectOutputStream dos =new ObjectOutputStream(ucon.getOutputStream());
	Vector v = new Vector();
	v.add(new String("BBB"));
	dos.writeObject(v);
	dos.flush();
	dos.close();
	System.out.println(ucon.getHeaderField(0));



1

スキルアップ/キャリアアップ(JOB@IT)