1
honeycomb 2017-05-31 09:25:14 +08:00 via Android
webview ?
|
2
lsyAndroid 2017-05-31 09:27:49 +08:00 via Android
同楼上
|
3
qqpkat2 2017-05-31 09:38:09 +08:00
当然是内嵌浏览器了
|
4
sunjws OP |
5
binsys 2017-05-31 10:06:09 +08:00
要截取 android 数据?
限定:在 android app 本身上动手,不说 proxy 方式或者路由交换机方式 有 root 权限的好说,自己百度一堆。 如果非 root 的需求,目前唯一的解决方案是写代码实现 android 提供的 VpnService api,虽然叫 VPN api,但是他拿到的是一个 fd,能拿到 本机所有三层的流量。 这个服务启动 android 系统会提示用户让用户选择是否允许。 请参考一个用此实现的广告过滤 app https://github.com/julian-klode/dns66 |
6
pengfei 2017-05-31 10:09:01 +08:00
你下一个`Packet Capture`, 开源软件, 你看看是不是你说的那种
|
7
codehz 2017-05-31 10:13:24 +08:00
shouldInterceptRequest 这个方法看过了吗。。
|
8
pcatzj 2017-05-31 10:21:51 +08:00
同楼上,有个 webView.setWebViewClient 方法,重写楼上的方法,基本所有的请求都会经过这个方法
|
9
pcatzj 2017-05-31 10:23:24 +08:00
这个是网页的请求,如果是 native 本地请求,可以用 okhttp,设置 intercept,也能够拦截所有的请求
|
11
codehz 2017-05-31 10:39:17 +08:00
@pubby #10 是 shouldInterceptRequest(WebView, WebResourceRequest)这个方法。。。之前那个 string 参数的确实只有 get
|
14
codehz 2017-05-31 11:28:54 +08:00
@pubby #12 不是啊,覆盖那个方法后,请求不是你手动发出的么。。你只要按照 WebResourceRequest 的参数发 POST 请求给服务器,然后获取到的值作为返回值,然后顺便记录或者要啥操作都可以了啊
|
15
pubby 2017-05-31 11:58:45 +08:00
@codehz 楼主要截获这个请求啊,如果是 post 请求,你没法从这个 WebResourceRequest 里面获取原始需要 post 的数据啊
|
16
qzskaka 2017-05-31 12:18:45 +08:00
使用 TBS x5
|
17
sunjws OP |
19
huazidev 2017-05-31 14:17:31 +08:00
如果需要截取 post 请求的数据的话,目前我们这边使用的方法是让 web 端通过 js 将 post 数据返回,仅供参考。。
|
20
codehz 2017-05-31 14:29:11 +08:00
|
22
codehz 2017-05-31 15:04:51 +08:00 1
@pubby #21 你可以参考这篇文章
http://blog.csdn.net/kpioneer123/article/details/51438204 用 JSInterface+注入代码的方式截获请求体 |
23
yankebupt 2017-05-31 15:05:03 +08:00
猜测楼主做的某某小助手,抓的不是自己的数据...
那只能希望内容方不开 https 或者跨域检测了。开的的话强行过滤修改估计有小概率被各种检测误杀... |