2011-01-29 31 views
1

基本的には、httpリクエストのプロキシを作成しようとしています。私はかなり簡単にサーバーをセットアップすることができ、直接接続ではなくプロキシにブラウザを向けると、ブラウザーから送信された生のHTTP要求が受信されています。プロキシ経由でJavaで生のhttpリクエストを送信する方法

私の問題は、現在、宛先サーバーからの応答を取得するためにプロキシから生の要求を送信できるようにする必要があることです。私はApacheのHttpClientを通して掘り下げようとしていましたが、私が見る限りでは、の要求を容易に送信するためにどのように使用できるかはまだ分かりません。

提案がありますか?

答えて

1

yurプロキシでCONNECTコマンドを認識する以外のHTTP認識コードは必要ありません。それ以外の部分はバイトを前後にコピーしているだけです。このために(接続ごとに)2つのスレッドを使用することも、NIOを使用して1つのスレッドですべて実行することもできます。

+0

"CONNECT"コマンドの意味は? 私のプロキシ経由でブラウザを実行していますが、プロキシが「http://www.web.jp/get_http://www.japanese.jp/Gold/」を送信しています。ターゲットサーバー(この例ではgoogle.com)。 – jerluc

+0

これで、最初の行で受け取ったwhetvrコマンドからtagetbhost:portを特定して接続し、クライアントからサーバーに送信されるすべてのバイトと、サーバーがクライアントに送信するすべてのバイトを送信します。接続エラーの報告とシャットダウンの処理とは別に、それほど重要ではありません。 – EJP

0

リモートサーバーへの接続を作成するだけです。ブラウザの要求をどのように経路変更しているかによって、DNSルックアップを自分で実装する必要があるかもしれません。 EJPが述べたように、あるストリームから別のストリームにバイトをコピーし、応答を元に戻します。

関連する問題