作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在柑橘行为类中发送 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/
我是一名优秀的程序员,十分优秀!