如何从SoapUI模拟请求中读取图像/ jpeg数据?

时间:2016-03-07 23:01:13

标签: rest soapui

我正在向SoapUI中的模拟REST服务器发送POST请求。请求的内容是jpeg图像。模拟服务器收到的标题如下所示:

Mon Mar 07 14:22:51 PST 2016:INFO:Headers: [Accept-Language:[en-us], 
Authorization:[Basic 6b9b0cd1-cd80-42e6-87ca-d9e7b9a12a1e], 
Host:[localhost:8080], 
Content-Length:[3253337], 
Content-Location:[myimage.jpg], 
Accept-Encoding:[gzip, deflate], 
User-Agent:[RestClient/1 CFNetwork/758.2.8 Darwin/15.3.0], 
Connection:[keep-alive], 
Accept:[application/json], 
Content-Type:[image/jpeg]]

当我尝试使用请求输入流将内容保存为文件时,我得到一个零长度文件。这是我的代码:

def name = mockRequest.getRequestHeaders().get("Content-Location")
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def path = groovyUtils.getProjectPath() + "/photos/" + name[0]

def outputFile = new File(path)
if (!outputFile.exists()) {
    outputFile << mockRequest.request.inputStream
} else {
    log.error "attempted to overwrite existing file"
}

如果我尝试将内容作为字符串获取,则该文件包含更多数据,但无法将其视为图像。这是上述的替代版本:

    def requestBody = mockRequest.getRequestContent()
    outputFile << requestBody

当我尝试查看该文件时,错误消息是无法打开该文件,因为它可能已损坏或文件格式无法识别。

将此数据作为jpeg文件从POST请求保存的正确方法是什么?

0 个答案:

没有答案