Я столкнулся с проблемой при отправке изображения с помощью 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 для тестирования веб-сервиса.
Но когда я попадаю на http://localhost:8080/my-war-name/rest/image
URL.
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).
Я также столкнулся со следующей ошибкой
Ресурс, идентифицированный этим запросом, способен только генерировать ответы с характеристиками, неприемлемыми в соответствии с заголовками запроса "accept" ()
Я проследовал по адресу http://krams915.blogspot.com/2011/02/spring-3-rest-web-service-provider-and.html tutorial.
Моя задача - отправить изображение в байтовом формате на Android-клиент.