java - 如何在我的 citrus HTTP 请求中发送图像?

标签 java image spring-boot continuous-integration citrus-framework

我正在尝试在柑橘行为类中发送 image.jpeg,就我而言,我收到的响应是一个空白页面,这不是我所期望的。

这是我的代码:

    @Override
    public void run(ScenarioRunner scenario) {

        try {
            Path path = Paths.get(getClass().getClassLoader().getResource("icon").toURI());
            List<Path> paths = Files.walk(path).filter(Files::isRegularFile).collect(Collectors.toList());
            int returnThisIcon = ThreadLocalRandom.current().nextInt(1, paths.size());      
            InputStream in = new FileInputStream(paths.get(returnThisIcon).toString());
            scenario
            .http()
            .send(action -> {
                try {
                    action
                    .response(status)
                    .contentType(MediaType.IMAGE_JPEG_VALUE)
                    .payload(""+ StreamUtils.copyToByteArray(in));
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            });

        }catch(URISyntaxException ue) {
            ue.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } 

        int randomNum = ThreadLocalRandom.current().nextInt(4000, 150000);

        try {
            long sleepTime = (randomNum);
            Thread.sleep(sleepTime);
        } catch (InterruptedException e) {
            LOG.error("JobSleeping and thread sleep", e);
        }






    }

我使用 Postman 测试了我的 HTTP 请求,并且使用 200 个代码和图像主体得到了良好的结果,但该图像是一个小方形图标。您可以看到 citrus 框架发送 HTTP 请求以接收 jpeg 图像格式,但响应时,图像全黑并带有一个小图标。而不是我的图像 jpeg。谁能帮我返回我需要的柑橘图片?

最佳答案

在您的示例中,您将二进制图标数据转换为字符串,这基本上破坏了数据,以便图标无法再显示为图像。

如果你想按原样发送二进制数据,你需要使用message()方法而不是payload()。这里你可以提供一个消息对象,并直接将输入流作为消息内容。

关于java - 如何在我的 citrus HTTP 请求中发送图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56559754/

相关文章:

java - 评估 - OutOfMemoryError : unable to create new native thread

css - css 可以进行特殊导航吗?

java - 无法在 spring cloud 配置服务器中禁用解密服务器端

java - Spring Boot中的多个index.html

java - 使用 javascript 在上传文件时执行两个操作。文件和文件详细信息不会传递到 javascript 函数

java - Java 多线程中线程状态如何工作?

java - 从 Amazon S3 部分读取 tar.gz 文件

image - 如何使用 calc (width - X) 保持图像比例

image - 为什么图像序列比源视频大(大小)?

spring-boot - 使用 SpringRunner 加快 SpringBootTest 的启动时间