我已经尝试了Stackoverflow中给出的各种方法,也许我错过了什么。
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
@ResponseBody
@RequestMapping(value = "/Image/{id:.+}", method = RequestMethod.GET, consumes = MediaType.ALL_VALUE, produces = MediaType.IMAGE_JPEG_VALUE)
public ResponseEntity<byte[]> getImage(@PathVariable("id")String id) {
byte[] image = imageService.getImage(id); //this just gets the data from a database
return ResponseEntity.ok(image);
}
Response response = given()
.pathParam("id", "image1.jpg")
.when()
.get("MyController/Image/{id}");
assertEquals(HttpStatus.OK.value(), response.getStatusCode());
byte[] array = response.asByteArray(); //byte array is identical to test image
注释后的代码(设置内容类型,取出产生
):
@RequestMapping(value = "/Image/{id:.+}", method = RequestMethod.GET, consumes = MediaType.ALL_VALUE)
public ResponseEntity<byte[]> getImage(@PathVariable("id")String id, HttpServletResponse response) {
byte[] image = imageService.getImage(id); //this just gets the data from a database
response.setContentType(MediaType.IMAGE_JPEG_VALUE);
return ResponseEntity.ok(image);
}
在浏览器中,这似乎只是给了一个字符串化的垃圾(我猜是字节到字符)。在Android中,它不会出错,但图像不会显示。
我相信这应该行得通:
@RequestMapping(value = "/Image/{id:.+}", method = RequestMethod.GET)
public ResponseEntity<byte[]> getImage(@PathVariable("id") String id) {
byte[] image = imageService.getImage(id);
return ResponseEntity.ok().contentType(MediaType.IMAGE_JPEG).body(image);
}
请注意,内容类型是为ResponseEntity
设置的,而不是直接为HttpServletResponse
设置的。
我正在开发一个Spring3.2.7应用程序,它将存储在数据库中的签名作为base64字符串通过spring控制器发送回用户浏览器,该控制器输出字节数组responseEntity。 下面是我的代码,这显然是工作之前,所以也许有一些配置变化,可能会导致这一点? 该图像正在浏览器中呈现,如下所示: 我没有更改这个类,我被告知它确实有效,我能够从两个字节数组创建图像,它们都很好,看起来是一样的,我能够
我有一个灰色的选项,我必须完成才能完成一个项目。上面说
我一直在关注这个(http://developer.android.com/google/play-services/setup.html#install)。它要求我为Android API17(或更高版本)安装谷歌API,但当我打开SDK Manager时,它看起来是这样的: 所以,我的问题是:这两个Google API是什么?这两者之间有什么区别?
建立路径 # pathlib_operator.py import pathlib usr = pathlib.PurePosixPath('/usr') print(usr) usr_local = usr / 'local' print(usr_local) usr_share = usr / pathlib.PurePosixPath('share') print(usr_share)
我正在尝试在CI服务器上设置多个目标(CentOS 64_x86),以进行自动化的Android应用程序测试,这将不顾一切地运行多个模拟器。从 http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20130729.zip 中提取最新的SDK并运行后,android更新sdk --no-ui我想我应该正确安装所有现有组件,但发现了2个问题
我试图在Linux Mint上运行一个android模拟器。 当我试图在模拟器上运行avd时,我得到以下错误。