我正在使用 SOAP UI 5.7.0 来模拟 REST 服务,它工作正常。只是,当我想使用 mockRequest.requestContent
访问
POST请求的正文时,仅在 第一次调用 中返回正确的内容,但从那时起,它总是返回 空字符串。
我尝试了在 OnRequestScript 和 POST 请求自己的 Dispatch script 中进行调用,但两种情况下的行为是相同的。我怀疑请求的流已在其他地方读取,因此不会返回任何更多内容。但我不知道该怎么办。
我想知道读取 POST 请求内容的正确方法是什么。
谢谢你
使用以下技巧获取
PUT
和 DELETE
请求的正文:
mockRequest.with {
if (method.toString() == 'PUT' || method.toString() == 'DELETE') {
InputStreamReader isr = new InputStreamReader(request.getInputStream(), "UTF-8")
BufferedReader br = new BufferedReader(isr)
StringBuilder sb = new StringBuilder()
while ((s=br.readLine())!=null) {
sb.append(s)
}
def requestBody = new groovy.json.JsonSlurper().parseText(sb.toString())
log.info "requestBody: " + requestBody
}
}
我在项目中使用它,但我真的不记得我是如何从哪里获得该片段的。据我所知,我必须更改一些部件才能使其正常工作。尝试一下吧。
我也遇到了同样的问题。我运行了 3 个 Soap 模拟服务和 1 个 Rest 模拟服务。 如果我先启动 Soap 模拟,则其余服务的主体将为空。 但是,如果其余服务在 Soap 服务之前开始运行,则其余服务的主体就可以了。
基本上,首先开始运行Rest服务