Png的MediaType。 HTTP请求

时间:2015-09-27 17:41:30

标签: java testing web spring-boot content-type

我有一个带有静态内容的网络应用。例如,我在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());`

我应该选择哪种内容?

感谢。

1 个答案:

答案 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

如果您使用浏览器打开该文件,可以看到:

enter image description here

如果您点击系统测试,您可以看到

enter image description here

这意味着预期的内容类型是 image / png; charset = UTF-8 。这种内容类型没错,但怪癖。这是因为默认情况下强制Spring Boot将已配置的charset添加到内容类型。您可以在spring.http.encoding.force中将false的属性设置为application.properties,因此返回的内容类型将为 image / png 。请注意,因为此设置可以修改现有测试的行为。