我正在尝试在我的 Citrus HTTP 响应中发送多部分/表单数据响应:
test.$(
http().server("converterServiceServer")
.send()
//Send configured status code
.response(httpStatus)
.message()
.contentType("multipart/form-data; boundary=" + boundary)
.type(MessageType.BINARY)
.body(new ClasspathResource("response.txt"))
);
在客户端,可以从多部分请求中提取图像,但不能读取图像。但如果我手动读取客户端的response.txt 文件,一切正常。
我认为问题在于,Citrus 将每个有效负载转换为字符串,这会损坏我的图像文件。我怎样才能避免这种情况?
我尝试了以下,还通过创建自定义消息或MessagePayloadBuilder来手动设置正文,但它们都不起作用。 Citrus 仍然希望将有效负载转换为字符串。
我的 Citrus 版本是 Java 17 和 Springboot 3.2.4 上的 4.2
您可以使用
toBinary()
消息处理器,如图此处
test.$(
http().server("converterServiceServer")
.send()
.response(httpStatus)
.message()
.contentType("multipart/form-data; boundary=" + boundary)
.type(MessageType.BINARY)
.body(new ClasspathResource("response.txt"))
.process(toBinary())
);
toBinary()
是 org.citrusframework.validation.interceptor.BinaryMessageProcessor
的一部分