2012-05-25 18 views
7

पर केवल हेडर को लागू करने वाला वेबव्यू मैं एक एंड्रॉइड ऐप लिख रहा हूं जो वेब सर्वर से सामग्री का अनुरोध करने के लिए वेबव्यू का उपयोग करता है, लेकिन mWebView.loadUrl (url1, हेडर) का उपयोग करके; केवल हेडर को प्रारंभिक अनुरोध पर लागू करेगा, न कि अनुरोध में संसाधन।एंड्रॉइड - प्रारंभिक अनुरोध

कोई भी विचार है कि संसाधन अनुरोधों के लिए हेडर को कैसे लागू करें?

+0

+1 @stotherd आप इस समस्या को मैं इस के साथ भी अटक और कर रहा हूँ के लिए किसी भी समाधान मिला समाधान खोजने के लिए सक्षम नहीं था पारित करने के लिए किया था? –

+0

दुर्भाग्य से नहीं, मुझे अलग-अलग संसाधनों का अलग-अलग अनुरोध करना पड़ा, और फिर परियोजना को पूरा नहीं किया। – stotherd

उत्तर

0

पूरी तरह से सुनिश्चित नहीं हैं, लेकिन आप shouldOverrideUrlLoading(WebView view, String url) विधि ओवरराइड और mWebView.loadUrl(url, yourHeaders); न कि ओवरराइड विधि में सच लौटने के लिए भूल जाते हैं शुरू करने से सभी रीडायरेक्ट को संभालने के लिए कोशिश कर सकते हैं।

+0

क्या आप इसे विस्तृत कर सकते हैं –

0

सबसे पहले, मुझे यह कहना है कि मुझे विश्वास नहीं है कि वेबव्यू इतना बेकार है।

यह मैं क्या कस्टम हेडर

public class CustomWebview extends WebView { 



    public void loadWithHeaders(String url) { 

     setWebViewClient(new WebViewClient() { 

     @Override 
     public WebResourceResponse shouldInterceptRequest(WebView view, String url) { 
      //makes a custom http request, which allows you to add your own headers 
      return customRequest(url); 
     } 
     }); 

     loadUrl(url); 
    } 


    /** 
    * Custom http request with headers 
    * @param url 
    * @return 
    */ 
    private WebResourceResponse customRequest(String url) { 

    try { 

     OkHttpClient httpClient = new OkHttpClient(); 

     Request request = new Request.Builder() 
       .url(url.trim()) 
       .addHeader("Header-Name", "Android Sucks") 
       .build(); 

     Response response = httpClient.newCall(request).execute(); 

     return new WebResourceResponse(
       "text/html", // You can set something other as default content-type 
       "utf-8", // Again, you can set another encoding as default 
       response.body().byteStream() 
     ); 
    } catch (IOException e) { 
     //return null to tell WebView we failed to fetch it WebView should try again. 
     return null; 
    } 
} 

}

संबंधित मुद्दे