我有一个带有静态内容的网络应用。例如,我在http://localhost/images/Head.png
发布了一张图片。
现在,我正在对此图片进行Http请求。
ResponseEntity<byte[]> entity = new TestRestTemplate().getForEntity("http://localhost/images/Head.png", byte[].class);`
我想知道哪个内容有这个实体。它应该是image/png
,但事实并非如此。我在这里得到一个例外:
assertEquals("Wrong content type:\n" + entity.getHeaders().getContentType(),
MediaType.valueOf("image/png"), entity.getHeaders().getContentType());`
我应该选择哪种内容?
感谢。
答案 0 :(得分:0)
如果你跑
$ gradle check
控制台报告如下内容
FAILURE: Build failed with an exception
* What went wrong:
Execution failed for task ':test'.
> There were failing tests. See the report at:
(...)/hello-master/build/reports/tests/index.html
BUILD FAILED
如果您使用浏览器打开该文件,可以看到:
如果您点击系统测试,您可以看到
这意味着预期的内容类型是 image / png; charset = UTF-8 。这种内容类型没错,但怪癖。这是因为默认情况下强制Spring Boot将已配置的charset添加到内容类型。您可以在spring.http.encoding.force
中将false
的属性设置为application.properties
,因此返回的内容类型将为 image / png 。请注意,因为此设置可以修改现有测试的行为。