如何在 Citrus HTTP 请求中发送图像?

问题描述 投票:0回答:1

我正在尝试在我的 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

java spring-boot citrus-framework
1个回答
0
投票

您可以使用

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

的一部分
© www.soinside.com 2019 - 2024. All rights reserved.