私はHTTPプロキシサーバーをJavaに書き込もうとしています。私のアプリケーションは、ブラウザからGETリクエストを受け取り、その宛先に転送します。私は応答パッケージのヘッダーを読んで、それをブラウザに戻したいと思います。これは、gzipでエンコードされていないものに比べ、text/html-contentの方が優れています。私はこれを行うには複数の方法を試して、私は現在DataInputStream
とDataOutputStream
を使用していますが、ブラウザには奇妙なシンボルしか表示されません。このコードは、プレーンテキストのみをイマイチそれが働いているように見えるdoes notのデータを扱うjavaでhttpパッケージを転送する
ArrayList<String> headerlist = new ArrayList<String>();
InputStream input = clientsocket.getInputStream();
dis = new DataInputStream(input);
serverinputstream = new InputStreamReader(input);
bufferreader = new BufferedReader(serverinputstream);
while(!(line = bufferedreader.readLine()).equals("")) {
headerlist.add(line);
}
PrintWriter pw = new PrintWriter(serveroutputstream, false);
DataOutputStream out = new DataOutputStream(serveroutputstream);
for (int i = 0; i < headerlist.size(); i++) {
pw.println(headerlist.get(i));
}
pw.println();
int bit;
while((bit = dis.read()) != -1) {
out.writeByte(bit);
}
out.flush();
dis.close();
out.close();
:ここ
は、コードの簡易版です。私は別の方法を使うべきですか、何か間違っていますか?
私はそのプレーンテキスト場合は、データをフィルタリングすることができるようにしたいので、invididuallyヘッダを読みたい:のようなものについては何
。私はすでにあなたの例のようなバッファを使ってみましたが、同じ結果を得ました。 – Knickedixen