AndServer icon indicating copy to clipboard operation
AndServer copied to clipboard

我想问一下怎么请求返回图片和Json字符串

Open sapoiuyt opened this issue 4 years ago • 10 comments

我看了示例没发现返回图片的。 不是储存的file,我想直接返回屏幕截屏

sapoiuyt avatar Apr 13 '20 09:04 sapoiuyt

使用了
@ResponseBody @GetMapping(path = "/cap", produces = "image/png") 返回的head头依然是json的格式。

sapoiuyt avatar Apr 13 '20 15:04 sapoiuyt

@ResponseBody
@GetMapping(path = "/cap", produces = "image/png")
byte[] image() throws IOException {
    AssetManager am = App.getInstance().getAssets();
    InputStream in = am.open("web/image/logo.png");

    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] data = new byte[4096];
    int count = -1;
    while((count = in.read(data,0,4096)) != -1)
        outStream.write(data, 0, count);

    data = null;
    return outStream.toByteArray();
}

详细代码

sapoiuyt avatar Apr 13 '20 15:04 sapoiuyt

我也想知道怎么返回手机中的图片供其他客户端下载或查看

keaitao0321 avatar Sep 30 '20 06:09 keaitao0321

可以返回Body:

File file = ...;
return new FileBody(file);

文件也可以放成静态的链接,比如可以放在网站中。

yanzhenjie avatar Oct 13 '20 10:10 yanzhenjie

可以返回Body:

File file = ...;
return new FileBody(file);

文件也可以放成静态的链接,比如可以放在网站中。

您好,按照这种方式处理,提示这个 image

aStudyer avatar Oct 14 '20 07:10 aStudyer

@yanzhenjie 能否直接下载sd卡下面的资源

YenRen avatar Jan 06 '21 07:01 YenRen

可以返回Body:

File file = ...;
return new FileBody(file);

文件也可以放成静态的链接,比如可以放在网站中。

您好,按照这种方式处理,提示这个 image

是支持的,body是能直接返回的,要看你接口代码和converter代码是怎么写的了。

yanzhenjie avatar Feb 20 '21 08:02 yanzhenjie

@yanzhenjie 能否直接下载sd卡下面的资源

能,两种方式:

  1. sd卡的目录作为website,内容就是静态链接。
  2. 通过一个接口来提供访问能力,文件名称用path或者query表示都可以做到。

yanzhenjie avatar Feb 20 '21 08:02 yanzhenjie

@RestController @RequestMapping(path = "/file") public class FileController {

@GetMapping("/img")
public FileBody getImage(HttpResponse response) {
    String imgPath = Environment.getExternalStorageDirectory().getPath() + "pic.jpg";
    File file = new File(imgPath);
    return new FileBody(file);
}

}

ysw100 avatar May 16 '22 10:05 ysw100