【发布时间】:2012-01-29 04:14:01
【问题描述】:
我在使用 Spring Web Service 发送图像时遇到问题。
我写的控制器如下
@Controller
public class WebService {
@RequestMapping(value = "/image", headers = "Accept=image/jpeg, image/jpg, image/png, image/gif", method = RequestMethod.GET)
public @ResponseBody byte[] getImage() {
try {
InputStream inputStream = this.getClass().getResourceAsStream("myimage.jpg");
BufferedImage bufferedImage = ImageIO.read(inputStream);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write( bufferedImage , "jpg", byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@ResponseBody 将响应转换为 JSON。
我正在使用 RestClient 测试 Web Service。
但是当我使用http://localhost:8080/my-war-name/rest/image URL 时。
Header
Accept=image/jpg
我在 RestClient 上遇到以下错误
使用 windows-1252 编码将响应正文转换为字符串失败。未设置响应正文!
当我使用 Chrome 和 Firefox 浏览器时
未添加标题,因此预计会出错(请指导我)
HTTP 状态 405 - 不支持请求方法“GET” 类型状态报告 不支持消息请求方法“GET” 描述 请求的资源不允许指定的 HTTP 方法(不支持请求方法“GET”)。我也遇到过一次以下错误
此请求标识的资源仅能 根据请求“接受”标头生成具有不可接受特征的响应()
我关注了 http://krams915.blogspot.com/2011/02/spring-3-rest-web-service-provider-and.html教程。
我的要求是以字节格式发送图像到Android客户端。
【问题讨论】:
标签: java json spring spring-mvc