kike 发表于 2023-10-9 17:16:55

浏览框拦截请求数据这样写错哪了?谢谢

本帖最后由 kike 于 2023-10-9 17:20 编辑

<火山程序 类型 = "通常" 版本 = 1 />

方法 浏览框_拦截请求 <接收事件 类型 = 整数 注释 = "当需要拦截网页元素时,添加本事件通过\"资源响应\"参数进行拦截操作.">
参数 来源对象 <类型 = 浏览框 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 欲拦截资源 <类型 = 浏览器欲拦截资源 注释 = "通过此参数控制拦截">
参数 即将跳到资源 <类型 = 浏览器资源请求>
{
    如果 (来源对象 == 浏览框1)
    {
      如果 (文本包含 (到文本 (即将跳到资源.取URL ()), "298%2C2000"))
      {
            调试输出 (字节数组到文本 (欲拦截资源.资源.取响应数据 ().到字节数组 ()))
      }
      如果 (文本包含 (到文本 (即将跳到资源.取URL ()), "logo"))
      {
            变量 资源 <参考 类型 = 浏览器资源响应>
            资源 = 浏览器资源响应.创建 ("image/png", , 字节流)
            欲拦截资源.资源 = 资源
      }
    }
    返回 (0)

}
错误: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.InputStream android.webkit.WebResourceResponse.getData()' on a null object reference
<C:\Users\Administrator\Desktop\webview_test\src\main.v>, 34: 错误: 位于 hsh.yl.网页拦截窗口.浏览框_拦截请求
<C:\Users\Administrator\Desktop\webview_test\src\main.v>, 26: 错误: 位于 hsh.yl.网页拦截窗口$1.dispatch
<D:\Program Files\win_android\plugins\vprj_android\classlib\sys\android\ctrl_webview\a_ctrl_webview.v>, 49: 错误: 位于 hsh.anzh.zj.llk.浏览框.拦截请求
<D:\Program Files\win_android\plugins\vprj_android\classlib\sys\android\ctrl_webview\a_ctrl_webview.v>, 415: 错误: 位于 hsh.anzh.zj.llk.浏览框$3.shouldInterceptRequest


创世魂 发表于 2023-10-9 20:56:59

只能把你写的例子发出来看看了。。光看这个不知道是哪里的问题。
写个火山例子,把整个项目打包上传。 (注意删除_int目录)

kike 发表于 2023-10-10 13:05:14

浏览框拦截请求数据这样写错哪了?谢谢

本帖最后由 kike 于 2023-10-10 13:22 编辑

创世魂 发表于 2023-10-9 20:56
只能把你写的例子发出来看看了。。光看这个不知道是哪里的问题。
写个火山例子,把整个项目打包上传。 (注 ...
无法上传附件?每次上传完成!失败1
官方浏览器拦截例子:
浏览框地址:http://appstore.ldmnq.com/menu_manager
浏览框_拦截请求事件中加入如下:
<火山程序 类型 = "通常" 版本 = 1 />
如果 (文本包含 (到文本 (即将跳到资源.取URL ()), "menu_manager"))
{
    调试输出 (字节数组到文本 (欲拦截资源.资源.取响应数据 ().到字节数组 ()))
}

运行正确是返回:
{"msg":"错误"}
但是它出错退出了。传网盘吧
链接: https://pan.baidu.com/s/1DwW0pyAJM3_GB0At7Cb82w?pwd=d5ir 提取码: d5ir 复制这段内容后打开百度网盘手机App,操作更方便哦


kike 发表于 2023-10-11 12:29:26

附件终于可以上传了:

howill2021 发表于 2023-10-31 14:51:55

我测试了下,你这个错误在于【欲拦截资源.资源】是空对象,也就报错了,
获取拦截返回的数据好像不能这么用,这个好像是在请求前的拦截,这时候还没有请求也就没有返回数据,具体怎么获取拦截返回的数据我页没找到:噜阿噜

创世魂 发表于 2023-10-31 17:07:36

安卓的浏览器这个没办法直接取响应数据的。。所以:欲拦截资源.资源.取响应数据 ()   是错误的写法。
想要获取就需要自己网页访问来获取。

看到访问的地址没,通过地址自己访问,如果涉及到cookie问题,访问的时候取出浏览框的cookie,加到网页访问代码里面。
https://bbs.voldp.com/data/attachment/forum/202310/31/6540c1069a4b2.png


创世魂 发表于 2023-10-31 17:07:52

howill2021 发表于 2023-10-31 14:51
我测试了下,你这个错误在于【欲拦截资源.资源】是空对象,也就报错了,
获取拦截返回的数据好像不能这么用 ...

要自己进行网页访问

howill2021 发表于 2023-10-31 18:36:16

创世魂 发表于 2023-10-31 17:07
要自己进行网页访问

魂总,如果是一个post请求,如何获取请求参数呢,我看目前只能获取get参数

飞丶宇 发表于 2024-4-26 21:31:18

创世魂 发表于 2023-10-9 20:56
只能把你写的例子发出来看看了。。光看这个不知道是哪里的问题。
写个火山例子,把整个项目打包上传。 (注 ...

能拦截 指定 url么不让他加载:)
页: [1]
查看完整版本: 浏览框拦截请求数据这样写错哪了?谢谢