Android webview拦截图片,Android拦截并获取WebView内部POST请求参数

本文介绍了如何在Android的WebView中拦截并获取POST请求参数。通过注入JS代码,监听XMLHttpRequest,实现在H5页面不知情的情况下获取请求信息。在拦截请求时,先判断是否为Ajax请求,然后获取POST请求的参数,最后重新构造请求。
摘要由CSDN通过智能技术生成

Android拦截并获取WebView内部POST请求参数

起因

有些时候自家APP中嵌入的H5页面并不是自家的。但是很多时候又想在H5不知情的情况下获取H5内部请求的参数,这应该怎么做到呢?

带着这个疑问,就有了这篇博客。

实现过程

方案一

最开始想到的方案是直接拦截H5中所有的请求:

webView.setWebViewClient(new WebViewClient() {

@Override

public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request){

try {

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

} catch (MalformedURLException e) {

e.printStackTrace();

}

Log.e("InternetActivity", request + "");

return super.shouldInterceptRequest(view, request);

}

});

复制代码

但是通过此方法只能获取get请求的参数(因为参数直接拼在了url链接中),对于post请求的参数无可奈何。

方案二

后来参考了request_data_webviewclient,有了新的实现方式,具体原理为:给H5注入一段js代码,目的是在每次Ajax请求都会调用Android原生的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值