5

Bir URL'nin içeriğini kimliği doğrulanmış bir proxy üzerinden almaya çalışıyorum. Bu i kullanmaya çalışıyorum kodu şöyledir:HttpUrlConnection proxy kimlik doğrulaması yeniden yönlendirme döngüsüne giriyor

 Authenticator authenticator = new Authenticator() { 
      public PasswordAuthentication getPasswordAuthentication() { 
       System.out.println("authenticating"); 
       return (new PasswordAuthentication("username", "password".toCharArray())); 
      } 
     }; 
     Authenticator.setDefault(authenticator); 
     URL url = new URL("http://www.google.com"); 
     InetSocketAddress proxyAddress = new InetSocketAddress("address.of.proxy", 6060); 
     Proxy proxy = new Proxy(Proxy.Type.HTTP, proxyAddress); 
     HttpURLConnection uc = (HttpURLConnection) url.openConnection(proxy); 
     uc.connect(); 
     System.out.println(uc.getResponseCode()); 

Nedense, kimlik doğrulama yeniden yönlendirme döngüsü içine alır, böylece sonuç 20 kez "kimlik doğrulaması" doğrulayıcı baskı, ardından bir ProtocolException olan

java.net.ProtocolException: Server redirected too many times (20) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1846) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439) 
at java.net.URLConnection.getContent(URLConnection.java:739) 
at proxytest.RunThis.main(RunThis.java:29) 

Proxy, verilen kimlik bilgileri ile çalışıyor, tarayıcıdan denedim. Bunu günlerce çalışmaya çalışıyorum, sistem özelliklerini, apache httpclient'i ve google'dan çıkarabileceğim bir şey ayarlamaya çalıştım. Herhangi bir fikir takdir edildi. :)

GÜNCELLEME: Ben WireShark'la ile test

, vekil kimlik doğrulama bilgilerini istekte fakat vekil geri 407 hatası atar. Yine, kimlik bilgileri tamam, tarayıcıdan tam olarak çalışıyor (aslında onları emin olmak için kaynak kodundan kopyaladım).

Yine de fark ettiğim bir şey var. Proxy-Yetkilendirme başlığının değeri, tarayıcı ile java tarafından gönderilen istek arasında tek ve bir karakterden farklıdır. Bu bir şey ifade edebilir mi?

+0

Tam olarak aynı sorunu yaşıyorum ... bir çözüm veya yeni fikirleriniz var mı? – Ben

+0

Ayrıca: Bir Çerez Kullanıcısı'nı kullanmayı öğrendim, ancak etkin bir varsayılan tanımlama bilgisi işleyicisi olan “CookieHandler.setDefault (yeni CookieManager (boş, CookiePolicy.ACCEPT_ALL)) bile olsa, aynı sonucu elde ediyorum ... – Ben

+0

@Koocka Hi , çalıştın mı? – Inoy

cevap

İlgili konular