2012-05-25 14 views
7

Web sunucusundan içerik istemek için webview kullanan bir android uygulaması yazıyorum ama mWebView.loadUrl (url1, headers); Yalnızca başlıkları istekte bulunan kaynakları değil, ilk isteği uygular.Android - Webview sadece ilk isteklerine başlıkları uygulayarak

Başlıkları kaynak isteklerine nasıl uygulayacağınız konusunda bir fikriniz var mı?

+0

1 @stotherd çözüm bulmak mümkün değildi geçmek yaptığını nedir? –

+0

Maalesef, kaynakları ayrı ayrı ayrı olarak talep etmek zorunda kaldım ve daha sonra projeyi tamamlamadım. – stotherd

cevap

0

Kesinlikle emin değilsiniz ancak shouldOverrideUrlLoading(WebView view, String url) yöntemini geçersiz kılmaya çalışıp tüm yönlendirmeleri mWebView.loadUrl(url, yourHeaders); başlayarak gerçekleştirebilirsiniz. Bu geçersiz yöntemde doğru geri dönmeyi unutmayın.

+0

bunu detaylandırabilir misiniz? –

0

Öncelikle, web sayfasının bu kadar çok emildiğine inanamıyorum.

Bu şimdiye özel başlıkları

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; 
    } 
} 

} Benim de bu sıkışmış ve am bu soruna herhangi bir çözüm elde ettiniz