2011-03-17 8 views
7

Android uygulamasında güvenliği engellemek için bir başvuru yapan bir web sayfası görüntülemem gerekiyor. Android’de yeniyim, bu yüzden web sayfasını bir web görünümünde nasıl görüntüleyeceğimi biliyorum, ancak 'referer’ı url isteğiyle birlikte nasıl göndereceğimi bilmiyorum. Eminim HTTPHeaderField'ı güncellemesi gerekecek, ancak Android'de bunun için herhangi bir başvuru bulamıyorum. Aşağıdaki kod Ben 'referer' olmadan web sayfası ama getirmek için kullanıyorum ne o Web için bir URL'de başvuru isteği nasıl gönderilirim?

WebView webview = new WebView(this); 
setContentView(webview); 
webview.loadUrl("http://www.mywebsite.com"); 

Cevabın fazladan başlıkları ekler WebView.LoadURL yönteminde yalan olabilir düşünüyorum 'Erişim engellendi' diyor ama bunun hiçbir örneğini bulamıyorum.

cevap

13

Bu düzey bir API düzeyine ihtiyacınız var mı? Ile

public void loadUrl (String url, Map<String, String> extraHeaders) 

extraHeaders bir Yönlendireni göndermek mümkün olmalıdır:

API Seviye 8 yana bir ikinci loadURL fonksiyonlu yoktur.


DÜZENLEME:

İşte çalışan bir örnek

String url = "http://www.targetserver.tld/"; 

    Map<String, String> extraHeaders = new HashMap<String, String>(); 
    extraHeaders.put("Referer", "http://www.referer.tld/login.html"); 

    WebView wv; 
    wv = (WebView) findViewById(R.id.webview); 
    wv.loadUrl(url, extraHeaders); 
+0

Cevabınız için teşekkürler, Android referansında bunu fark ettim, ancak bir örnek bulmayı umuyordum. Benim yönlendirici "myblog201.com/" – user616076

+0

Örnek için, kodu denemek için kopyaladım ama aşağıdaki hatayı alıyorum 'WebView türündeki loadUrl (String) yöntemi argümanlar için geçerli değil (String, Map < String, String>) 've ek argümanı kaldırmamı istiyor. Yanlış bir şey mi yapıyorum? – user616076

+0

Hangi API Düzeyini kullanıyorsunuz? Yazdığım gibi, ikinci parametre ile yeni loadUrl işlevi API 8. Seviyesinden beri var. – MacGucky

0

Sen WebView istekleri yakalamak ve değiştirmek için Niyet Filtreler kullanmanız gerekecektir olduğunu.

Eğer

  • isteği "doamin.com/page.html içinse WebView'da tüm http isteklerini yakalamak için tavsiye eden kişi olarak

    1. Kurulum amaç filtreleri doamin.com/page.html belirtmek gerekir varsayarsak "," http://www.mywebsite.com "adresine kullanıcı göndermek için bir yenileme etiketi olan önceden tanımlı sayfayı döndürün
    2. domain.com/page.html, mywebsite.com bir başvuru kaynağı olarak gönderilsin

    Daha yeni API'lerde sp başlıkları loadUrl'in kendisinde belirtin.

  • +0

    Bir örnek gönderir misiniz lütfen? –

    İlgili konular