2011-03-17 20 views
7

के लिए यूआरएल में एक रेफरर अनुरोध कैसे भेजें, मुझे अपने एंड्रॉइड ऐप में एक वेब पेज प्रदर्शित करने की ज़रूरत है जो सुरक्षा को बाईपास करने के लिए रेफरर की तलाश में है। मैं एंड्रॉइड के लिए नया हूं इसलिए मुझे पता है कि वेब पेज में वेब पेज को कैसे प्रदर्शित किया जाए, लेकिन यूआरएल अनुरोध के साथ 'रेफरर' को कैसे भेजा जाए। मुझे यकीन है कि इसे HTTPHeaderField को अपडेट करने की आवश्यकता होगी लेकिन मुझे एंड्रॉइड में इसके लिए कोई संदर्भ नहीं मिल रहा है। नीचे दिए गए कोड है कि मैं क्या वेब पेज लेकिन 'रेफ़रर' बिना ऊपर लाने के लिए उपयोग कर रहा हूँ है यह कहते हैं, 'प्रवेश निषेध'वेबव्यू

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

मुझे लगता है कि इस सवाल का जवाब WebView.LoadURL विधि है जो अतिरिक्त हेडर कहते हैं में झूठ सकता है लेकिन मुझे इसका कोई उदाहरण नहीं मिल रहा है।

उत्तर

13

किस एपीआई-स्तर के लिए आपको उस funktion की आवश्यकता है? साथ

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

extraHeaders आप एक संदर्भित भेजने के लिए सक्षम होना चाहिए:

एपीआई स्तर 8 के बाद से वहाँ एक दूसरे loadUrl-कार्य है।


संपादित करें:

यहां एक संपूर्ण काम कर उदाहरण

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

उत्तर के लिए धन्यवाद, मैंने एंड्रॉइड संदर्भ में यह देखा लेकिन एक उदाहरण खोजने की उम्मीद कर रहा था। मेरा रेफरर "myblog201.com/" – user616076

+0

उदाहरण के लिए धन्यवाद, मैंने कोड को कॉपी करने के लिए कॉपी किया है, लेकिन मुझे निम्न त्रुटि मिलती है 'प्रकार WebView में विधि loadUrl (स्ट्रिंग) तर्कों के लिए लागू नहीं है (स्ट्रिंग, मानचित्र < स्ट्रिंग, स्ट्रिंग>) 'और यह मुझे अतिरिक्त तर्क को हटाने के लिए संकेत देता है। क्या मुझसे कुछ गलत हो रही है? – user616076

+0

आप किस एपीआई स्तर का उपयोग कर रहे हैं? जैसा कि मैंने लिखा है, दूसरा पैरामीटर के साथ नया loadUrl-function एपीआई लेवल 8 के बाद मौजूद है। – MacGucky

0

आप आशय फिल्टर का उपयोग करने पर कब्जा और WebView अनुरोधों को संशोधित करने की आवश्यकता होगी है।

यह मानते हुए कि आप WebView

  • हैं अनुरोध "doamin.com/page.html के लिए है में सभी HTTP अनुरोध पर कब्जा करने के

    1. सेटअप आशय फिल्टर रेफरर के रूप में doamin.com/page.html निर्दिष्ट करने की आवश्यकता ", पूर्व-परिभाषित पृष्ठ लौटाएं जिसमें उपयोगकर्ता को" http://www.mywebsite.com "
    2. डोमेन.com/page.html को mywebsite.com
    पर रेफरर के रूप में भेजा जाएगा

    नए एपीआई में आप स्पैम कर सकते हैं loadUrl खुद में ecify हेडर।

  • +0

    क्या आप एक उदाहरण पोस्ट कर सकते हैं? –