2011-02-08 4 views
1

私はこれをgoogledと同様にchecked the documentationしかし、答えを思い付くことができませんでした。だから私はここで誰かが少なくともどこから始めるべきかについての良い提案を持っていることを願っています。HttpURLConnectionでFollowRedirectsのインスタンス値を設定してください

私は(わかりやすくするために省略)している:

import java.net.URL; 
import java.net.HttpURLConnection; 

URL myUrlObject = new URL("some ungodly long URL"); 
HttpURLConnection.setFollowRedirects(false); 
HttpURLConnection connection = (HttpURLConnection) myUrlObject.openConnection(); 

これは、原理的には、正常に動作します。しかし、サーバーアプリケーション(コードはサーブレットとして実行されます)内の静的メソッドsetFollowRedirects()を呼び出すことに少し気を配り、が自動的にリダイレクトに従うことを望むコードの複数の同時インスタンスとどのように対話するかについて考えています。ですから、私はむしろそれをインスタンスオブジェクトに設定し、そのインスタンスオブジェクトを使用して接続を開きます。問題は、HttpURLConnectionオブジェクトを直接インスタンス化することができないということです。私の実験では、前にsetFollowRedirects(false)を実行する以外に、openConnection()はデフォルトでリダイレクトに従います。私はURLの反対側(HTTP 200 OKまたは302を返すことができるアプリケーションの実装を持っています。通常の状況下で見つけました。どちらの方法でも、の最初の応答をキャプチャする必要があります)。

myUrlObjectが指し示すリソースに実際にアクセスすると、時間がかかりすぎる可能性があります。終了すると、コードが多数のユーザーによってかなり早く実行されることが予想されます。同時実行)。この理由だけでも、私はopenConnection()呼び出しの回りに外部のロック機構を使用したくありません。

どのように進めるのがよいでしょうか?

答えて

4

HttpURLConnection.setInstanceFollowRedirects()を試しましたか?

HttpURLConnection connection = (HttpURLConnection) myUrlObject.openConnection(); 
connection.setInstanceFollowRedirects(false); 
+0

いいえ、これはばかげています。私はあなたの例に非常に類似したものを試したことを知っています。setInstanceFollowRedirects()を呼び出す前にリダイレクトに従います。もう一度やり直してみると、魅力のように機能します。助けてくれてありがとう! –

0

public void setInstanceFollowRedirects(boolean followRedirects) 

はあなたがやりたいことはありませんか?

関連する問題