使用Screaming Frog调用PSI API时持续触发Java.lang.IllegalStateException错误
解决PSI API调用时的java.lang.IllegalStateException类型不匹配错误
这个错误既不是页面的问题,也不是Lighthouse的问题,是解析PSI API响应的代码(你用的Screaming Frog集成逻辑)存在类型映射错误——因为你测试任何网站都会报错,说明问题和目标页面无关。
具体原因
PSI API返回的$.lighthouseResult.audits.dom-size.details.items[0].value字段本质是数字类型(代表页面的DOM节点总数),但你的解析逻辑错误地将该字段声明为String类型,导致JSON解析库(比如Gson、Jackson)抛出"期望字符串但得到对象/数字"的异常。
你可以直接调用PSI API查看原始响应验证,比如用curl命令测试:
curl "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&key=YOUR_API_KEY"
在返回的JSON里,dom-size审计的items[0].value会是类似1234的数字,而非带引号的字符串。
解决办法
- 如果你是自己编写的Java代码:把对应实体类中
value字段的类型从String修改为Integer或Long,确保和API返回的类型匹配。 - 如果你用的是Screaming Frog:这属于工具的兼容性Bug,需要等待官方发布更新修复;或者临时绕过——用自定义脚本调用PSI API,手动处理字段类型转换后,再把数据导入到工具中。
内容的提问来源于stack exchange,提问作者Mako Aluveaux
相关产品推荐
相关产品推荐

