2009-09-03 18 views
3

私はインターネットからの応答時間を取得するJavaアプリケーションを作った。私は、今、私は私が把握することはできません。この問題を持っている、プロキシの背後から作業をここに私のコードのスニップだプロキシをjava、URL、System.setPropertyに設定していますか?

URL website = new URL("http", proxy, Integer.parseInt(proxyPort), websiteUrl) 
BufferedReader in = new BufferedReader(new InputStreamReader(website.openStream())); 
long start = System.currentTimeMillis(); 
while ((in.readLine()) != null){} 
long elapsedTimeMillis = System.currentTimeMillis()-start; 

URL website = new URL(websiteUrl); 
System.setProperty("http.proxyHost", proxy); 
System.setProperty("http.proxyPort", proxyPort); 
BufferedReader in = new BufferedReader(new InputStreamReader(website.openStream())); 
long start = System.currentTimeMillis(); 
while ((in.readLine()) != null){} 
long elapsedTimeMillis = System.currentTimeMillis()-start; 

私は

URL website = new URL(websiteUrl); 
System.setProperty("http.proxyHost", proxy); 
System.setProperty("http.proxyPort", proxyPort); 
を使用しています

私は

を使用する場合、私は平均

に0.064の応答時間を取得し、 210

URL website = new URL("http", proxy, Integer.parseInt(proxyPort), websiteUrl) 

私は0.219のはるかに高い応答時間を得る。どの人が私に正確なタイミングを与えているかをどのようにして知ることができますか?

答えて

0

最初のバージョンは実際にプロキシを使用しています。これは、プロキシサーバーへのHTTP要求をしています。あなたのテストをもう一度実行することをお勧めしますが、HTTPレスポンスコードを見て、URLのInputStreamからの実際の出力を調べて、どのレスポンスが得られているかを確認してください。

3

あなたが最初のケースでは、あなたのURLをインスタンス化するために使用しているコンストラクタを形成し、あなたが望むものをやっていないのJavadocを確認:あなたはあなたのウェブサイトは、プロキシを通して呼び出す第2のケースで

 
URL(String protocol, String host, int port, String file) 
Creates a URL object from the specified protocol, host, port number, and file. 

を、中最初にあなたが

http://proxyhost:3128/http://mysite.com/index.html

ようなもので、Webサーバーとしてプロキシを呼んでいる...、これ時間は非常に異なる応答は、あなたが期待するものではありません、あなたはあなたのLANにとどまります。

関連する問題