【发布时间】:2018-01-08 07:20:40
【问题描述】:
我目前正在使用 REST-API(使用 Groovy 作为一种语言)与 ZAP 进行交互。
我想要实现的是开始扫描并在扫描完成后检索结果。
我目前正在查看扫描状态,并且我假设,一旦扫描状态为100,我可以检索结果,表明扫描已完成。但是,这不起作用,我必须不断查询/JSON/core/view/alerts/,直到检索到实际结果。
这基本上是我的代码:
String zapUrl = ${zap.getContainerIpAddress()}:8090"
def scanResponse = slurper.parse(new URL("$zapUrl/JSON/spider/action/scan/?url=http://featuretron:8080"))
String scanId = scanResponse.scan
def scanStatus = slurper.parse(new URL("$zapUrl/JSON/spider/view/status/?scanId=$scanId"))
while (scanStatus.status != "100") {
sleep(500)
scanStatus = slurper.parse(new URL("$zapUrl/JSON/spider/view/status/?scanId=$scanId"))
}
def alerts = slurper.parse(new URL("$zapUrl/JSON/core/view/alerts/"))
while (alerts.alerts.isEmpty()) {
sleep(500)
alerts = slurper.parse(new URL("$zapUrl/JSON/core/view/alerts/"))
}
我的问题是,是否存在一种更稳定的方式来指示结果是否已生成。似乎 Java-API 的官方示例也在等待:
【问题讨论】: