Я сталкиваюсь с проблемой при отправке изображения с помощью Spring веб-службы.
Я написал контроллер, как показано ниже
@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 для проверки веб-службы.
Но когда я нажимаю URL http://localhost:8080/my-war-name/rest/image
.
Header
Accept=image/jpg
Я сталкиваюсь с следующей ошибкой в RestClient
Ошибка преобразования тела ответа в строку с использованием кодировки Windows-1252. Тело ответа не установлено!
Когда я использую браузеры Chrome и Firefox
Заголовки не добавляются, поэтому ожидалась ошибка (просьба проинформировать меня об этом)
HTTP Status 405 - Request method 'GET' not supported type Status report message Request method 'GET' not supported description The specified HTTP method is not allowed for the requested resource (Request method 'GET' not supported).
Я также столкнулся с ошибкой ниже
Ресурс, идентифицированный этим запросом, способен только генерирования ответов с характеристиками, неприемлемыми в соответствии с запросом "принять" заголовки()
Я следил http://krams915.blogspot.com/2011/02/spring-3-rest-web-service-provider-and.html учебник.
Мое требование - отправить изображение в байтовом формате в Android Client.