android webview内的post请求(点击按钮)添加header行不通

来源:互联网 发布:淘宝售后流程图 编辑:程序博客网 时间:2024/06/05 06:23
处理WebView中的非超链接请求(如Ajax请求): 

有时候需要加上请求头,但是非超链接的请求,没有办法再shouldOverrinding中拦截并用webView.loadUrl(String url,HashMap headers)方法添加请求头

  目前用了一个临时的办法解决:

首先需要在url中加特殊标记/协议, 如在onWebViewResource方法中拦截对应的请求,然后将要添加的请求头,以get形式拼接到url末尾

在shouldInterceptRequest()方法中,可以拦截到所有的网页中资源请求,比如加载JS,图片以及Ajax请求等等

Ex:

[java] view plaincopy


  • @SuppressLint("NewApi")  
  • @Override  
  • public WebResourceResponse shouldInterceptRequest(WebView view,String url) {  
  •     // 非超链接(如Ajax)请求无法直接添加请求头,现拼接到url末尾,这里拼接一个imei作为示例  
  •   
  •     String ajaxUrl = url;  
  •     // 如标识:req=ajax  
  •     if (url.contains("req=ajax")) {  
  •        ajaxUrl += "&imei=" + imei;  
  •     }  
  •   
  •     return super.shouldInterceptRequest(view, ajaxUrl);  
  •   
  • }  

  • Android如何拦截WebView之中的Post或者Get请求
  • WebView webView = (WebView) findViewById(R.id.web_view);
  • webView.setWebViewClient(new WebViewClient() {
  •     @Override
  •     public boolean shouldOverrideUrlLoading(WebView view, String url) {
  •         Toast.makeText(getApplicationContext(),
  •                  "WebViewClient.shouldOverrideUrlLoading",
  •                  Toast.LENGTH_SHORT);
  •         view.loadUrl(url);
  •         return true;
  •     }
  •     @Override
  •     public void onPageStarted(WebView view, String url, Bitmap favicon) {
  •         Toast.makeText(getApplicationContext(),
  •                       "WebViewClient.onPageStarted",
  •                       Toast.LENGTH_SHORT).show();
  •         //这儿可以截获网页的URL,可以都URL进行分析。
  •         //本例子之中是分析从通过RenRen登录成功后返回的access_token.
  •         if (url.contains("graph.renren.com/oauth/login_success.html")) {
  •             int start = url.indexOf("access_token") + "access_token=".length();
  •             int end = url.indexOf("expires_in") - 1;
  •             accessToken = url.substring(start, end);
  •         }
  •         super.onPageStarted(view, url, favicon);
  •     }
  • });
  • webView.loadUrl(myUrl);
0 0
原创粉丝点击