Estou tentando baixar uma imagem de uma url que o ifood fornece nas suas apis.
já fiz de tudo, mas me retorna um array de bytes que se eu salvar não corresponde a uma imagem.
Ou seja a imagem não é suportada.
fiz de duas maneiras:
a primeira:
public static void leImagemUrl() throws Exception {
// Sending get request
String sUrl = "https://merchant-api.ifood.com.br/order/v1.0/orders/26826528-79e0-4bcd-a37f-d19bd5beef3e/cancellationEvidences/88d52aaf-861d-4b24-8087-9d8fd63d050f";
URL url = new URL(sUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Authorization", "Bearer " + Parametros.getInstanciaMaster(3).getAcessToken());
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String output;
StringBuffer response = new StringBuffer();
while ((output = in.readLine()) != null) {
response.append(output);
}
in.close();
File file = new File("c:\\manda\\ax.jpeg");
Files.write(file.toPath(), response.toString().getBytes(), StandardOpenOption.CREATE);
}
a segunda meneira:
private static void leImagem(long loja) throws Exception {
String sUrl = "https://merchant-api.ifood.com.br/order/v1.0/orders/0d611f41-8315-42dd-b777-547c4e4acdd6/cancellationEvidences/6b4c058f-1928-4555-b70f-6b177f5cd312";
configuration.property(ClientProperties.CONNECT_TIMEOUT, 20000);
configuration.property(ClientProperties.READ_TIMEOUT, 20000);
webTarget = client.target(sUrl);
Response response = webTarget.request()
.header(HttpHeaders.AUTHORIZATION, "Bearer " + Parametros.getInstanciaMaster(loja).getAcessToken())
.get();
System.out.println(response.getStatus());
String sret = response.readEntity(String.class);
System.out.println(sret);
if (response.getStatus() == 200) {
byte[] bytes = sret.getBytes();
String sbase64 = Base64.getEncoder().encodeToString(bytes);
JgsGravaArquivo.Grava(sbase64, "c:\\manda\\base64.txt");
File file = new File("c:\\manda\\a.jpeg");
Files.write(file.toPath(), bytes, StandardOpenOption.CREATE);
}
System.out.println(sret);
}