Ниже приведен пример того, как я это реализовал.Код читает тело ответа в awt BufferedImage
, затем записывает в файл .jpg, затем читает файл обратно в байтовый массив и затем удаляет файл.Я уверен, что нашел помощь с этим на SO, но у меня нет удобного ответа.Я постараюсь найти это, чтобы я мог процитировать.Надеюсь, это поможет вам!
** Отредактируйте, как @Srikanthkumar упоминает в своем ответе, вам также нужно будет получить сертификат и добавить его в доверенное хранилище вашей JVM.Вы можете получить это через браузер через любой браузер, у которого у вас есть инструменты для исследования.
import java.awt.image.BufferedImage;
import java.io.File;
import java.net.URL;
import java.nio.file.Files;
import java.util.Base64;
import java.util.UUID;
import javax.imageio.ImageIO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Override
public String getImage(String productNumber) throws EcomWebException {
try {
BufferedImage image = ImageIO.read(url);
File file = new File(guid.toString() + ".jpg");
ImageIO.write(image, "jpg", file);
String base64ImageString = Base64.getEncoder().encodeToString(Files.readAllBytes(file.toPath()));
file.delete();
return base64ImageString;
} catch (Exception e) {
throw new EcomWebException(IMAGE_NOT_FOUND_MESSAGE + productNumber, e);
}
}