我有一个Spring MVC方法,它返回responseEntity
。根据检索的特定数据,它有时需要向用户返回数据流。其他时候,它将返回流以外的东西,有时是重定向。我非常希望这是一个流,而不是字节数组,因为它可以很大。
目前,我使用以下代码片段返回流:
HttpHeaders httpHeaders = createHttpHeaders();
IOUtils.copy(inputStream, httpServletResponse.getOutputStream());
return new ResponseEntity(httpHeaders, HttpStatus.OK);
不幸的是,这不允许SpringHttpHeaders
数据实际填充响应中的HTTP头。这是有意义的,因为我的代码在Spring接收responseEntity
之前就写入了outputstream
。
return new ResponseEntity(inputStream, httpHeaders, HttpStatus.OK);
但它会引发此异常:
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
我可以通过直接设置HttpServletResponse
上的所有内容来使我的函数工作,但我只想用Spring来实现这一点。
Spring的InputStreamResource工作得很好。您需要手动设置Content-Length,否则Spring似乎试图读取流以获得Content-Length。
InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
httpHeaders.setContentLength(contentLengthOfStream);
return new ResponseEntity(inputStreamResource, httpHeaders, HttpStatus.OK);
我从来没有发现任何网页建议使用这个类。我只是猜测,因为我注意到有一些关于使用ByteArrayResource的建议。
我想在下面返回JSON。 {“名字”:“杰基”} 新来的春靴在这里。1天大。有没有合适的方法可以做到这一点?
问题内容: 我有一个Spring MVC方法,返回一个。根据检索到的特定数据, 有时 需要将数据流返回给用户。其他时候,它将返回除流之外的其他内容,有时还会返回重定向。我绝对希望它是一个流而不是字节数组,因为它可能很大。 当前,我使用以下代码片段返回流: 不幸的是,这不允许Spring 数据实际填充响应中的HTTP标头。这是有道理的,因为我的代码在Spring接收之前写入了。 某种程度上让Spri
问题内容: 在控制器中,我创建json数组。如果我还可以的话: 但我需要返回JSON数组和HTTP状态代码: Eclipse在XXX行中看到错误: 如何返回json + http回复?我的工作代码用于返回一个json对象+ http状态代码: 问题答案: 现在我回来了。我不知道更好的解决方案,但是可以。
我试图通过RESTendpoint将数据从一个服务器发送到另一个服务器: 服务器B启动此请求: 服务器A接收请求并返回文件: 因此,很明显,我必须将声明更改为: 或者到 然后错误消失了,但我丢失了HttpStatus。回复时是否有确认信息?这里的正确解决方案是什么?
我试图返回一个列表,并将该响应重定向到我的模型类。 例如:如果我使用,它工作得很好,但我不想为每个模型编写响应方法。 方法 错误 出现错误(Type=内部服务器错误,状态=500)。创建名为“index”的bean时出错:调用init方法失败;嵌套异常为java.lang.ClassCastException:java.util.LinkedHashMap不能强制转换为com.xxx.Applic