
0
java.lang.IllegalStateException: closed 异常分析及解决
覃擎宇2025-02-220
auto.js报错
java.lang.IllegalStateException: closed 异常分析及解决
问题描述
使用http
请求数据,进行解析,遇到java.lang.IllegalStateException: closed 异常,错误堆栈如下
16:47:26.049/V: 开始运行[[remote]main.js]
16:47:27.044/E: Wrapped java.lang.IllegalStateException: closed ([remote]main.js#152)
Wrapped java.lang.IllegalStateException: closed
at httpVerifyCode ([remote]main.js:152:0)
at [remote]main.js:170:0
16:47:27.045/V:
------------
[ [remote]main.js ]运行结束,用时0.994000秒
原因
response.body().string()
只能引用一次,请求过后,就会关闭,再次调用response.body().string()就会报close异常,应该使用变量进行接收
function httpVerifyCode(){
let response = http.get('https://www.my12323.oe/a1b9ac7186')
if(response.statusCode == 200){
let responseStr = response.body.string()
console.log(response.body.string());
console.log('请求成功返回的响应',responseStr);
let result = responseStr.match(/\d{4}/g)
if(!result){
sleep(1000)
toast('验证码未获取到正在重新获取')
httpVerifyCode()
}else {
toast(`验证码获取成功:${result[0]}`)
inputConfig.verifyCode = result[0]
inputVerifyCode()
}
}else{
// httpVerifyCode()
console.log('请求失败',response.body);
}
}
解决
记得使用一个变量进行接收就好了 然后之后使用该变量 进行逻辑运行
let responseStr = response.body.string()
版权声明
本文系作者 @覃擎宇 转载请注明出处,文中若有转载的以及参考文章地址也需注明。\(^o^)/~
Preview