
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 @pubby #21 你可以参考这篇文章 http://blog.csdn.net/kpioneer123/article/details/51438204 用 JSInterface+注入代码的方式截获请求体 |
23 yankebupt 2017-05-31 15:05:03 +08:00 猜测楼主做的某某小助手,抓的不是自己的数据... 那只能希望内容方不开 https 或者跨域检测了。开的的话强行过滤修改估计有小概率被各种检测误杀... |