I'm trying to upload an image to Zendesk API.
The upload is correct, but if the image is corrupted.
Here is my code. Did I miss something?
private static final String API_URL = ConfigB2CSugar.getApiZendeskUrl() + "uploads.json";
public static DocumentResponse uploadToZendesk(File fileToUpload, String fileName) throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
DocumentResponse responseMap = new DocumentResponse();
try {
String mimeType = URLConnection.guessContentTypeFromName(fileToUpload.getName());
HttpPost httpPost = new HttpPost(API_URL+"?filename="+fileName);
HttpEntity entity = MultipartEntityBuilder.create()
.addBinaryBody("file", fileToUpload)
.build();
httpPost.setEntity(entity);
httpPost.addHeader("Authorization", "Basic " + ConfigB2CSugar.getAuthTokenZendesk());
httpPost.addHeader("Content-Type", mimeType);
// Ejecutar la solicitud y obtener la respuesta
HttpResponse response = client.execute(httpPost);
String jsonResponse = EntityUtils.toString(response.getEntity());
// Imprimir el código de estado de la respuesta
System.out.println("Status Code: " + response.getStatusLine().getStatusCode());
// Analizar la respuesta JSON y devolverla
return DocumentResponse.parseJsonToDocument(jsonResponse);
} catch (Exception e) {
System.out.println("Error al subir archivo.");
System.err.println("Error: " + e.getMessage());
} finally {
// Cerrar el cliente HTTP
client.close();
}
// Devolver la respuesta
return responseMap;
}