1.拦截post的请求在其中添加请求头。

在WebViewClient()中使用shouldInterceptRequest方法进行拦截;注意在api21以下使用

public WebResourceResponse shouldInterceptRequest(WebView view, String url){};api21以上public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request){}。目前比较方便的在public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request)中进行拦截,因为request中提供了判断了请求方式的方法以及获取请求头的方法。虽然可以添加请求但是无法获取请求体部分(官方没有提供获取请求体的方法),抓包时发现没有请求体。

在api21以下只提供地址无法判断是post还是get请求。有谁有好的方法麻烦告知以下。

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)

@Nullable

@Override

public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {

if (request.getMethod().equalsIgnoreCase("post")){

URL url= null;

try {

LogUtil.i("11111111111=====request.getUrl().toString()==="+request.getUrl().toString());

url = new URL(request.getUrl().toString());

HttpURLConnection connection= (HttpURLConnection) url.openConnection();

connection.setDoInput(true);

connection.setDoOutput(true);

connection.setUseCaches(false);

connection.setRequestMethod("POST");

Map requestHeaders = request.getRequestHeaders();

for (Map.Entry entry : requestHeaders.entrySet()) {

connection.setRequestProperty(entry.getKey(), entry.getValue());

}

String version = APKUtil.getVerName(TaskCenterActivity.this);

int systemVersion = APKUtil.getSystemVersion();

connection.setRequestProperty("Authorization", MyApplication.getAppUser().getAccess_token());

connection.setRequestProperty("Bp-Channel","Android/" + version + "/" + systemVersion);

// String params = "\nBp-Channel:" + "Android/" + version + "/" + systemVersion + "\nAuthorization:" + MyApplication.getAppUser().getAccess_token();

// DataOutputStream os=new DataOutputStream(connection.getOutputStream());

// os.writeBytes(params);

return new WebResourceResponse("text/html", connection.getContentEncoding(), connection.getInputStream());

} catch (Exception e) {

e.printStackTrace();

}

}

return super.shouldInterceptRequest(view,request);

}

android 拦截webview加载url_android webview拦截post的请求相关推荐

  1. android webview 加载本地,webview加载本地资源的各种尝试

    1.webview 打开sd卡上的静态html文件 ,js文件既然放在assets文件夹下能找到,那能通过放在sd卡,能加载吗? 答:事实证明,是没有用的. 2.既然能拿到html的数据,那我们是不是 ...

  2. android 拦截webview加载url_WebView拦截url

    前言 在 Android开发过程中,我们偶尔会涉及到WebView的url 拦截问题.那么今天就让我们来详细讲讲WebView的拦截与返回. 今天涉及的内容: WebView 加载原理 拦截之shou ...

  3. 利用web实现android的界面,利用WebView加载手机端网页实现APP封装

    **思路 : ** 安卓端只使用一个Activity 此Activity中只包含WebView这个控件 并且隐藏此Activity的标题栏 这样只要我们前端对手机浏览器的适配做的很好 我们这个WebV ...

  4. Android开发之WebView加载自定义scheme报错net::ERR_UNKNOWN_URL_SCHEME(附带源码标题下面可点击下载)

    咱们先看下报错结果图: 我这边是华为荣耀7i手机才出现这个情况,总结得出结论android6.0以上加载自定义scheme会报错如下,6.0以下貌似不会 三星和模拟器没有可以直接加载这个url ,网页 ...

  5. Android WebView加载淘宝拼多多及其他第三方页面问题

    阔别Android一年多,最近又接手过来公司里的Android端的项目,按照需求如果手机中没有安装淘宝或者拼多多.京东及其他app应用就在应用内使用webview加载第三方应用页面,但是一直错误重定向 ...

  6. Android—WebView加载速度优化工程实践

    一.混合开发的优势与缺陷 在混合开发大行其道的今天,很多页面和功能都转由前端实现,客户端只要在APP中嵌入一个WebView即可,同时前端开发的页面对于Android和iOS端的效果是统一的,省去了适 ...

  7. android动态设置错误页面,Android中替换WebView加载网页失败时的页面

    我们用webView去请求一个网页链接的时候,如果请求网页失败或无网络的情况下,它会返回给我们这样一个页面,如下图所示: 上面这个页面就是系统自带的页面,你觉得是不是很丑?反正小编本人觉得非常丑,很难 ...

  8. Android使用WebView加载网页

    在AndroidManifest.xml设置访问网络权限: <span style="font-size:24px;"><span style="fon ...

  9. Android中WebView加载sdcard中的html时提示:ERR_FILE_NOT_FOUND和ERR_ACCESS_DENIED

    场景 Android中WebView加载sdcard中的html显示: Android中WebView加载sdcard中的html显示_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在实 ...

最新文章

  1. 【前沿技术】2021年AI将改变制造业的6大应用趋势
  2. 关于BBSxp/LeadBBS的后台上传Webshell的鸡肋防范
  3. 别总埋汰写代码,停下总结一下吧
  4. EnableFeignClients注解解析
  5. Eigen求解数学问题(二)
  6. flv 开源 修复_解决开源项目错误和修复的5个步骤
  7. shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
  8. 最简单快速的源码开发平台 -- LEARUN
  9. vue渲染大量数据优化_vue大数据表格卡顿问题的完美解决方案
  10. 什么是再生纤维素纤维
  11. Android中级面筋:开发2年的程序员如何短期突击面试?
  12. 使用C/C++制作简单的俄罗斯方块 一
  13. 从零开始学python第13天
  14. 佟年计算机天才不会打游戏,亲爱的热爱的:Gun神带佟年开黑,网友:甜蜜游戏时间...
  15. 【考研经验】2019年浙江大学软件学院考研经验分享, 双非_二战_妹纸_跨考_上岸!...
  16. [ 常用工具篇 ] windows安装phpStudy_v8.1_X64
  17. 【MCP3208/MCP3204】STM32多通道AD采集,有源码
  18. 怎么判断各种值是不是为空
  19. 新年大礼包:Xbox、Switch,PopMart芝麻街系列盲盒,小度音响,百度网盘超级会员免费领...
  20. crontab定时运行bash脚本,重启zeppelin

热门文章

  1. Google Puppeteer加入到headless Chrome的工具行列
  2. Docker发布镜像至Docker Hub
  3. Linux中文件颜色所代表的属性和颜色
  4. 小蚂蚁学习PHP性能优化(2)--PHP语言级性能优化
  5. sencha Touch 2.4 学习之 XTemplate模板
  6. java: 无法将类 com.duo_tai.Cow中的构造器 Cow应用到给定类型;
  7. AX2009 的EP开发要点
  8. 艺街开放平台开源计划
  9. ASP.Net中调用CSS
  10. 爆牙齿的Web标准面试考题II(iPhone SMS/iChat UI的Web标准实现)