Я пытаюсь написать встроенный образ с помощью Java GWT. Однако изображение не отображается:
Это швы для меня причина этого в том, что я неправильно кодирую его с помощью base64 или что кодировка неправильная.
Поскольку при возврате следующего кода рисунка, который я нашел в Интернете, все работает (так это не так, мой браузер не может отображать встроенные изображения):
Вот как я генерирую свой pic-код. Я открываю URL-адрес и пытаюсь закодировать результат base64:
try {
IoProvider.get().makeRequestAsText(url,
new ResponseReceivedHandler() {
public void onResponseReceived(ResponseReceivedEvent event) {
final Response response = event.getResponse();
if (response.getStatusCode() == HTTP_OK){
callback.onSuccess("data:unknown;base64,"
+ Base64.encode(response.getText()));
}
}
}, options);
} catch ...
Я использую кодировщик base64: http://snipt.net/tweakt/gwt-base64/
Есть идеи, почему сгенерированное изображение недействителен?
РЕДАКТИРОВАТЬ:
Я немного переписал свой код, основываясь на ваших ответах. Вот как это выглядит сейчас:
IoProvider.get().makeRequest(url,
new ResponseReceivedHandler
Отредактированный код дает следующий код:
Я также пробовал преобразовать кодировку:
try {
callback.onSuccess("data:image/jpeg;base64,"
+ Base64Utils.toBase64(response.getText().getBytes("ISO-8859-1")));
} catch (UnsupportedEncodingException e) { }
Что дает этот код:
Как я могу передать ответ кодировщику Base64, без преобразования его в String?
response.getData () - это объект, и мне нравится иметь его как byte [].